1

我有一个 id 和一个文本字段。

我需要搜索一个完全匹配的单词或以单个 mysql 查询的字符串中的单词开头。

例如select * from tablename where textfield like "%cam%. ,这将返回 cam 在单曲中的任何位置找到的所有文本 id。

但我需要通过在一个句子中拆分单个单词来获得可以查询的结果。

标识文本

1 Camel_walk.
2 camel does drink water.
3 does Camel_store water.
4 In deset people can find_camel
5 this will not return

当我查询 select * from tablename where textfield like "%camel%. 返回前 1,2,3,4

但我需要得到单词以camel开头的id

1)select * from tablename where textfield like "Camel%"
return 1,3 ( which is not working for me)
or even
2)select * from tablename where textfield like "%Camel"
return 4

这两个查询不起作用可以有人帮忙吗

谢谢

4

4 回答 4

2

当您在类似 SQL 的查询中使用骆驼(正确)大小写时,字符串将找到字符串的区分大小写匹配,但是,“骆驼”和“骆驼”将寻找骆驼/骆驼/骆驼......等等(不区分大小写匹配)

select id from tablename where text like "%Camel%"将返回 1,3。

select id from tablename where text like "%camel"将返回 4。

select id from tablename where text like "%camel%"将返回 1,2,3,4。

select id from tablename where text like "Camel%"将返回 1。

select id from tablename where text like "camel%"将返回 1,2。

select id from tablename where text like "camel %"(“camel”和“%”之间的空格)将返回 2。

注意字符串大小写的区别。

于 2013-02-21T06:14:55.637 回答
0
select * from tablename where textfield like "Camel%" or textfield like ' %Camel'

注意%第二个条件之前的空格。当字符串中的任何单词以开头时,这两个条件都会匹配Camel,无论它是否是第一个单词。

于 2013-02-21T05:49:40.630 回答
0

用户匹配

$conditions[]=array("MATCH(MODEL_name.fieldname) AGAINST('$text' IN BOOLEAN MODE)");

于 2013-02-22T11:53:52.130 回答
0

这应该适用于所有情况

SELECT id
  from tablename
 WHERE textfield like '%[^A-z^0-9]Camel%' -- In the middle of a sentence
    OR textfield like 'Camel%'            -- At the beginning of a sentence
于 2013-02-21T05:56:21.203 回答