Konverze booleanu na integer uvnitř sql where conditon
- crassus
- Backer | 78
Dobrý den,
když zavolám pomocí Database Explorer následující kód:
foreach($this->db->table('benefit')->where('json->"$.active"', true) as $benefit)
{
...
}
tak se z něj vyrobí následující SQL:
SELECT `id`, `json`
FROM `benefit`
WHERE (`json`->"$.active" = 1)
Lze nějak docílit toho, aby ve výsledném SQL nebyla jednička ale true? Tzn. takhle:
SELECT `id`, `json`
FROM `benefit`
WHERE (`json`->"$.active" = true)
Děkuji
- crassus
- Backer | 78
CZechBoY napsal(a):
Zkus
->where('json->$.active = ?', true)
pripadne to cely dat jako string bez otazniku
Bohužel s tím otazníkem to vytvoří zase jedničku.
Když uvedu podmínku jako string, tak zase vznikne tohle:
SELECT *
FROM `benefit`
WHERE (`json`->"$.active" = `true`)
ORDER BY `json_data`->"order" ASC
a vypíše error: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‚true‘ in ‚where clause‘