首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL如果值为空,则不进行搜索

MySQL如果值为空,则不进行搜索
EN

Stack Overflow用户
提问于 2019-05-12 11:21:54
回答 1查看 39关注 0票数 0

我有以下疑问:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2019-05-12 11:30:15

您只需更改您的WHERE条件,以包含针对category的空/空测试。如果它为空或为NULL,则nfc_category.name = :category的结果将是无关紧要的(应该优化掉)。请注意,需要使用括号来避免运算符优先级问题。

代码语言:javascript
复制
(:category = '' OR :category IS NULL OR nfc_category.name = :category)

根据您的PDO::ATTR_EMULATE_PREPARES设置,第二次和第三次使用参数时可能需要使用另一个参数名称,例如:category0:category1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56095955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档