SQL, if null, úprava SQL dotazu
- sniper1101
- Člen | 21
Dobrý deň. Prosím vás potreboval by som poradiť s mojim SQL.
Ide o to, že mám nejaké premenne ($what, $year, $datum_dorucenia = NULL, $datum_zverejnenia = NULL, $suma = NULL) kde niektoré sú defaultne null a môžete im priradiť hodnotu a potom v sql výbere zohľadniť, že pokiaľ sú neni null tak vo where porovná nejaký stĺpec s tou hodnotou. Skúšal som to cez ifnull hocičo ale nejak som sa nevymotal.
Ide o to, že $what a $year sa zadáva vždy a $what hľadám naprieč niektorými stlpcami ako fulltext a $year zohľadňujem cez =. Avšak môže sa zadať aj datum_dorucenia, datum_zverejnenia a suma. A tie treba porovnávať. Nejaké návrhy niekto ako by to bolo najlepšie spraviť? Prikladám moje sql ale je to nefunkčné.
$datum_dorucenia = (!is_null($datum_dorucenia) ? date_format($datum_dorucenia, 'Y-m-d') : "");
$datum_zverejnenia = (!is_null($datum_zverejnenia) ? date_format($datum_zverejnenia, 'Y-m-d') : "");
$this->database->fetchAll("select * FROM tabulka WHERE MATCH (cislo_faktury_interne, anotacia, cislo_zmluvy, cislo_objednavky, dodavatel, dodavatel_adresa, dodavatel_ico) AGAINST(? IN BOOLEAN MODE) AND year(datum_zverejnenia) = ? AND suma_celkom LIKE ? AND DATE(d_dorucenia) = ? AND DATE(datum_zverejnenia) = ?", "*".$what."*", $year, '%'.$suma.'%', $datum_dorucenia, $datum_zverejnenia);
Ďakujem všetkým.
Editoval sniper1101 (16. 7. 2015 15:01)