Oznámení
Omlouváme se, provoz fóra byl ukončen
modifikátor %l (%in) a hodnota NULL
Upozornění: Tohle vlákno je hodně staré.
před 9 lety
- hrtlik
- Člen | 7
Pokuď mám:
<?php
$where['row%l'] = array('foo', 'bar', NULL);
?>
tak tyto modifikátory roztahují pole na:
<?php
([row] IN ('foo', 'bar', NULL))
?>
ale správně by mělo být:
<?php
([row] IN ('foo', 'bar') OR [row] IS NULL)
?>
EDIT: Teda alespoň v MYSQL
Editoval hrtlik (23. 7. 2010 13:30)
před 9 lety
- pracj3am
- Člen | 14
Nejde jenom o NULL. Všechny hodnoty by měly mít stejný typ. Tj. když je
alespoň jedna hodnota řetězec, musí být všechny hodnoty převedeny na
řetezec. Například následující dotaz vrací 0 | 1
SELECT '2a' IN ('1a','2','3a'), '2a' IN ('1a',2,'3a');
před 9 lety
- fak
- Člen | 48
mám stejnej problém, v IN by měly bejt všechny hodnoty stejnýho typu.
vyřešil jsem to ale přetypováním hodnot házených do pole na string..
Editoval fak (2. 2. 2011 23:58)