MySQL搜索:深入字段之中(mysql搜索字段)
的字符串
MySQL搜索是一种常用的数据库搜索方法,它可以不仅被FFS(全文搜索)所支持,也可以深入字段之中进行字符串搜索。
当想要深入字段内搜索字符串时,MySQL提供了一个比较实用的内置函数,称为LIKE,用于实现非全文搜索,比如:
SELECT id, title
FROM article
WHERE title LIKE ‘%data%’;
上述的搜索代码会在字段article title内搜索字符串“data”,在搜索字段内可以使用通配符,比如 %,以实现对一个字符串中间部分进行搜索,而不担心它的开头和结尾。
另外注意,LIKE关键字默认是不大小写敏感的,如果需要区分大小写,可以使用关键字COLLATE,例如:
SELECT id, title
FROM article
WHERE title COLLATE utf8_bin LIKE ‘%data%’;
utf8_bin是一种编码,是按照utf8这种特定标准进行编码的,它会区分大小写,因此当需要搜索的字段和数据库表的编码标准不匹配时,可以使用COLLATE关键字来额外指定字段编码,以正常匹配进行搜索。
此外还有另外一些MySQL内置函数,如REGEXP与RLIKE,可以在字段中搜索使用正则表达式的字符,例如:
SELECT id, title
FROM article
WHERE title RLIKE ‘[a-z]{4,10}’;
上述的搜索代码解析为:在article title字段中寻找仅包含4~10个小写字母的字符串,像abcde,xyzabc或az12q等。
总之,使用MySQL进行搜索时,可以利用内置的LIKE、COLLATE、REGEXP和RLIKE等函数,深入字段内搜索各种字符串,以灵活进行恰当的搜索,从而达到最佳的搜索效果,节省时间及精力。