【问题标题】:Like and Where in the same MySQL query同一个 MySQL 查询中的 Like 和 Where
【发布时间】:2010-03-04 17:38:24
【问题描述】:

我想使用类似以下的东西:

SELECT city FROM cities WHERE city LIKE %D% AND country_id = '12'

【问题讨论】:

  • %D% 周围加上单引号;除此之外,您的查询看起来不错。你有错误吗?如果是这样,请发布它们。
  • 一般我使用 ilike 来区分大小写。
  • @Tchalvak: 喜欢吗?什么意思?
  • 啊,对不起,我换了postgresql和mysql,mysql匹配开始不区分大小写,我的错。
  • 区分大小写取决于 mysql 中的排序规则。默认是 latin1 的不区分大小写的排序规则。但不是mysql匹配不区分大小写。

标签: php mysql where-clause sql-like


【解决方案1】:

你需要引用字符串

SELECT city FROM cities WHERE city LIKE '%D%' AND country_id = '12'

但请记住,使用以“%”开头的模式的 LIKE 意味着服务器不会在“城市”列上使用索引 - 在您的特定情况下可能无关紧要,但需要注意一些事项。 Here's the reference 因为您的评论表明您不熟悉索引。

【讨论】:

  • 你们什么人不会在城市列上使用索引?会有什么问题?
  • @Josh - 我将链接添加到解释这一点的文档中。
【解决方案2】:

节目有点晚了......但是当我将它用作“搜索”功能时,我遇到了同样的问题。请记住,在 PHP 中,您需要将其连接起来,否则它可能会中断......就像这样

$query="SELECT city FROM cities WHERE city LIKE '%".$searchterm."%' AND country_id = '12'"

可能与您无关,但如果您像我一样四处寻找,找出为什么“搜索词”没有以可识别的格式输入,这可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多