我有一个MySQL数据库和一个名称列如下的表:
id name age
1 samuel lee 31
2 doug sokira 32
3 vernon smith 33
我想在数据库中搜索名称。到目前为止我有这个问题:
SELECT * FROM table WHERE name LIKE 's%'
这将返回ID为1的第一条记录。
但是,我希望查询能够进一步从空格分隔的文本中进行搜索。所以,换句话说,搜索应该通过名字和姓氏来完成。
我愿意坚持这个数据库设计,其中名字和姓氏存储在一个单独的列中。
因此,上面的查询应该返回第1,2和3行。
我应该如何制定我的查询?
答案 0 :(得分:5)
SELECT * From table WHERE name LIKE 's%' OR name LIKE '% s%'
请注意,这不能使用任何索引,因此总是慢狗。请重新考虑拆分列。
答案 1 :(得分:4)
SELECT * FROM table WHERE name LIKE '%s%'
将返回第1,2和3行,因为它们都包含's'。