whereOr na stejný sloupec
- JaxP
- Člen | 62
Nette Database Explorer
Cíl: vyber řádky, kde je text NULL nebo prázdný string
// => ... WHERE text = '' OR text IS NULL
Ex.1:
/** @var Selection */
$selection->where('text',[NULL,'']);
// => ... WHERE text IN (NULL,'') mariaDB ignoruje NULL, pro porovnání vyžaduje "IS NULL"
Ex.2:
/** @var Selection */
$selection->whereOr(['text' => NULL, 'text' => '']);
// => ... WHERE text = '' protože klíč pole je text (stejný)
Nápad jak tohoto query docílit?
Děkuji
Edit:
Dodám řešení za roh, které však funguje (vloží přímo celý string do
podmínky)
$selection->where("text IS NULL OR text = ''")
Editoval JaxP (26. 7. 2018 14:11)
- JaxP
- Člen | 62
GEpic napsal(a):
Proč máš jednou prázdnej string a jednou NULL když to indikuje ten samej stav?
Jde o teoretický dotaz nad Databse Explorerem, místo prázdného stringu
to můžeme interpretovat třeba jako „zadek“.
Můžeme tedy nadále pracovat s verzí: (není důležitý zadek, ale
formulace podmínky s NULL)
$selection->where('text',[NULL,'zadek']);
To, že v tuto chvíli chci vybrat „zadek“ a null neznamená, že v jiném případě nechci zadek a jindy zase null.
Editoval JaxP (26. 7. 2018 15:05)