在单词的开头搜索文本

时间:2013-10-02 16:15:28

标签: php mysql

我想选择仅在某个字段(名称)中的单词的开头包含某些文本('one')的行。
示例:
1)名称:名称一检查
2)姓名:姓名别人检查
我只需要第1行。
我目前正在使用LIKE%1%,得到那些结果(第1行和第2行,然后我需要的更多),然后检查文本是否位于单词的开头是否存在并保留我需要的结果。

有没有办法运行一个查询,它会根据特定的字符(例如:“”)打破名称字段中的值,然后检查每个文件是否位于文本的开头?

1 个答案:

答案 0 :(得分:5)

使用Like运算符:SELECT * FROM table WHERE name LIKE 'one%'

(请勿在双方使用%,因为这会找到ANYTHINGoneANYTHING。)

但是,如果单词可以出现在句子的某个位置,则需要双%: 添加一个空格,如下所示:LIKE '% one%'以确保单词STARTS为“one”。 如果单词必须是独立的,您可以使用LIKE '% one %'(但是这不会匹配字段的开头或结尾。它会在one test上失败。)

要绕过此问题,您可以将字段与前导和尾随空格连接:

... WHERE CONCATENATE(" ", CONCATENATE (field, " ")) LIKE '% one %'

这将匹配Theres oneone goes home甚至if there is one that goes home,但不会匹配someone is therehes done