【问题标题】:SQL SELECT where column CONTAINS substringSQL SELECT where column CONTAINS substring
【发布时间】:2019-06-25 07:45:44
【问题描述】:

我有一个包含所有用户名的数据库。现在,我有一个可以搜索用户的页面。目前我使用以下 SQL:

SELECT uid, username, id, status 
FROM users 
WHERE `username` LIKE <search string>

现在,我有一条用户名为 Hattorius 的记录。但是当我使用该 SQL 语法并搜索 hatt 时。它没有给出任何结果。我怎样才能让它工作?

我搜索了一些,但没有人对此有真正的答案。

【问题讨论】:

  • 您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称(而且您的查询使用的是非标准 SQL)。请为您正在使用的数据库产品添加tag
  • 列排序规则?您忘记了% 通配符吗?
  • 使用 %%
  • 在搜索小写 h 时找不到大写 H 是您真正的问题吗?哈托里乌斯VS哈托里乌斯?如果是这样,您可以存储搜索名称的小写版本(可移植但重复数据),或者您可以在搜索时将两个值都转换为小写(可能不可移植)。例如“where lower(username) like lower()”。

标签: sql


【解决方案1】:

尝试使用LIKE

SELECT uid, username, id, status 
FROM users 
WHERE `username` LIKE '%hatt%'

【讨论】:

    【解决方案2】:

    去掉单引号:

    SELECT uid, username, id, status 
    FROM users 
    WHERE username LIKE '%hatt%'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2018-02-24
      • 2015-11-18
      • 2014-10-14
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多