tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

modifikátor %l (%in) a hodnota NULL

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)