【问题标题】:Wordpress MYSQL SELECT WHERE wildcard includes NULLSWordpress MYSQL SELECT WHERE 通配符包括 NULLS
【发布时间】:2016-03-20 16:55:54
【问题描述】:

我的狗数据库包含一个“hd”列,其中包含一个介于 A 和 E 之间的值,或者如果 hd 等级未知,则什么都没有。

我正在实现一个用于从 Wordpress 查询数据库的用户表单。

我希望大多数用户想要选择高清评级介于 A 和 C 之间的狗,我已经能够做到这一点:

WHERE hd REGEXP "[A|B|C]";

但是似乎没有使用 REGEXP 的通配符解决方案,所以如果用户不需要在 HD 上进行选择,我可以使用

WHERE hd LIKE "%";

但是,如果我使用 LIKE,我可以一次搜索一个高清代码。 例如 像“B”这样的高清;

我还设法通过以下方式选择多个值:

WHERE hd IN ('A','B','C');

但我做不到

WHERE hd IN ("%");

但我真正需要的是对多个值或通配符的选择,而不是可以传递给 $_POST 数组中的 SELECT 语句。

欢迎所有建议。

加里

【问题讨论】:

    标签: mysql select where wildcard


    【解决方案1】:

    如何使用列本身?

    WHERE hd IN ('A','B','C')
    

    WHERE hd IN (hd)
    

    这将在 hd 不是 NULL 时起作用。

    替代方案可能如下所示:

    WHERE ((hd >= $hd_low and hd >= $hd_high) or $hd_low is null)
    

    【讨论】:

      【解决方案2】:

      看来我自己找到了答案:

      WHERE hd IN ('A','B','C','D','E','');
      

      选择所有高清类别 + 空值。

      如果用户只想选择 A、B 和 C,则只需从表单中删除 D、E 和 ''。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-11
        • 1970-01-01
        相关资源
        最近更新 更多