包含文本的mysql查询列

时间:2012-07-18 17:56:55

标签: mysql

我使用的mysql表格如下:

   id    |   name  | other_names  
 ---------------------------------
    1    |  john   | peter johny mike
    2    |  jane   | kevin pite janes john
    3    |  carl   | carlo nick pole 

我希望得到表格中的每个用户的查询ID#的结果" other_names"包含以查询中的单词开头的名称。例如,如果查询中的单词是" joh"需要得到ID 1和2的结果。

我尝试使用包含LIKE%joh%的查询,但结果我得到每个用户ID#列#34;其他名称"具有包含查询中的单词的名称。

SELECT * FROM table WHERE name LIKE  '".$word."%' OR other_names LIKE '%".$word."%'

我需要列#34; other_names"中的名字。从查询中的单词开始,而不是包含单词。

2 个答案:

答案 0 :(得分:0)

从查询中删除前导%

SELECT * FROM table 
WHERE other_names LIKE '".$word."%'

答案 1 :(得分:0)

您需要REGEXP运算符和border关键字

SELECT * FROM table WHERE name REGEXP '[:<:]]someword'