MySQL" LIKE"搜索不起作用

时间:2013-07-21 22:44:02

标签: php mysql sql search

我通过“LOAD DATA INFILE”在MySQL中导入了一个.txt数据库,一切似乎都有效,唯一的问题是如果我使用以下查询搜索数据库中的记录:

 "SELECT * FROM hobby WHERE name LIKE  'Beading'"

它返回0行,而如果我使用

""SELECT * FROM hobby WHERE name LIKE  '%Beading%'"

它返回1行,即使存在一个name = Beading的记录。有人知道它可以依赖什么?

2 个答案:

答案 0 :(得分:2)

使用sql LIKE时:

您应该使用通配符标识符,例如(或不):

  1. '%word' - 返回值以字母结尾的结果:“word”。
  2. 'word%' - 以字母开头的结果:“word”。
  3. %word% - 返回包含字母的结果:“word”where。
  4. 还有一些模式搜索组合,如:

    'abc'LIKE'abc'true

    'abc'喜欢'%'真实

    'abc'LIKE' b 'true

    'abc'LIKE'c'false

  5. 如果你想要完全匹配,你应该使用:

    "SELECT * FROM hobby WHERE name='Beading'"
    

    但是LIKE 'Beading'也应该有用,所以它可能是空格问题或区分大小写的问题。

    如果您想确保结果完整,则需要注意整理案例(敏感度)。

    假设您的表是UTF ... CS并且您想要进行不敏感的案例搜索,您应该在sql查询中声明它,例如:

    SELECT * FROM hobby WHERE name COLLATE UTF8_GENERAL_CI LIKE 'beading'
    

    尝试测试不同的方法,看看最适合您的目标。

答案 1 :(得分:1)

第一个不起作用,因为Like语句应该使用'%search word%'

你应该使用这个

      "SELECT * FROM hobby WHERE name LIKE  '% Beading %' or name LIKE '% Beading'
       or name LIKE 'Beading %' or name LIKE 'Beading'"