【问题标题】:MySQL - Filter resultMySQL - 过滤结果
【发布时间】:2011-02-25 16:59:32
【问题描述】:

我想过滤我的 SQL 查询的结果。我想选择某些列中包含特定文本的所有内容。

例子:

SELECT * FROM categories WHERE (name 在其值 ex 中具有“abc”值。 MyabcCategory)

也许在查询中这样做不是一个好主意,也许最好先获取所有然后过滤数组?但我不知道该怎么做。

【问题讨论】:

    标签: php mysql sql pdo


    【解决方案1】:

    使用LIKE% 通配符:

    SELECT * FROM categories WHERE name LIKE '%abc%'
    

    这将为您提供所有包含abc 的记录。

    You can learn more about it here :)

    【讨论】:

      【解决方案2】:

      您想使用LIKE operator% 来匹配特定单词前后的任何字符:

      select *
      from categories
      where name like '%abc%';
      


      但请注意,这样做时,MySQL 将在每次执行查询时扫描表的每一行……如果您有大量数据,这可能不是很好。

      如果您正在搜索某种文本,您可能想要:

      • 如果您使用的是 MyISAM 表,请使用 FULLTEXT index
      • 或者,使用与 MySQL 分离的解决方案,使用特定的索引/搜索引擎,例如 Solr

      【讨论】:

      • 谢谢 :-) 在过去的几个月里,我上的时间不多;要做的事情太多了……不确定我会留下来,但是,今天我有点时间,怀念过去的日子^^
      • 我们缺少知识的源泉,尤其是在 PHP 标签方面。我希望你有一天能抽出时间来:)谢谢
      • 也许,谁知道 :-) ;;不管怎样,很高兴你还在这里!
      【解决方案3】:
      SELECT * FROM categories WHERE name LIKE '%abc%'
      

      【讨论】:

        猜你喜欢
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 2017-05-03
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 2017-12-15
        • 2011-10-05
        相关资源
        最近更新 更多