mysql LIKE在一列中的两个单词之内

时间:2014-10-20 20:02:03

标签: php mysql where-clause sql-like

我有mysql表,其中列为#34; name",其中名称以First Last格式写入(因此它已合并)。我需要搜索init(可以使用%LIKE%),但我需要通过每个单词中的第一个字母找到相似之处。通常情况下,我会使用LIKE%,但它只会搜索名字,而不是姓氏......

请问有什么解决方案吗?

2 个答案:

答案 0 :(得分:1)

这将找到名字以A开头的行:

WHERE name LIKE 'A%' OR name LIKE '% A%'

这会找到名字以A开头且姓氏以B开头的行:

WHERE name like 'A% B%'

如果您经常需要这样做,最好有单独的first_namelast_name字段。

答案 1 :(得分:1)

MySQL支持REGEXP,但您不能总是依赖间距模式来确定名字的结束位置和姓氏的开始位置。然而,这将达到95%或更好。

但是,我建议编写一个脚本来重建表,将名称拆分为last和first列。