我有以下疑问:
SELECT nfc_film.title, nfc_film.film_id, nfc_film.description, nfc_film.release_year, nfc_film.rating, nfc_film.last_update, nfc_category.name
FROM nfc_film
JOIN nfc_film_category
ON nfc_film.film_id = nfc_film_category.film_id
JOIN nfc_category
ON nfc_film_category.category_id = nfc_film_category.category_id
WHERE
nfc_film.title LIKE :searchterm
AND
nfc_category.name = :category
LIMIT 10
OFFSET :page我知道IFNULL()函数。但是假设:category为空或为null,我该如何进行查询,就好像该条件不在其中一样。
所以就像If :category is null then don't search in nfc_category.name
发布于 2019-05-12 11:30:15
您只需更改您的WHERE条件,以包含针对category的空/空测试。如果它为空或为NULL,则nfc_category.name = :category的结果将是无关紧要的(应该优化掉)。请注意,需要使用括号来避免运算符优先级问题。
(:category = '' OR :category IS NULL OR nfc_category.name = :category)根据您的PDO::ATTR_EMULATE_PREPARES设置,第二次和第三次使用参数时可能需要使用另一个参数名称,例如:category0、:category1。
https://stackoverflow.com/questions/56095955
复制相似问题