我有一个关于mysql的基本问题。在我的表“表”中,我有一个名为“foo”(字符串)的列。我想做这样的事情:
SELECT * FROM table WHERE %foo% LIKE '%thing%'
但这显然是不正确的。提前致谢。
我有一个关于mysql的基本问题。在我的表“表”中,我有一个名为“foo”(字符串)的列。我想做这样的事情:
SELECT * FROM table WHERE %foo% LIKE '%thing%'
但这显然是不正确的。提前致谢。
SELECT * FROM table WHERE key like '%sth%'
select * from table where key like '%sth%'
首先 key 是保留关键字。因此,您可能需要在方括号周围添加 带引号的反引号。其次,您需要正确使用通配符。许多答案已经向您表明了这一点。根据样本数据设置。
Set @sth:= 'joh'
方法 2 是使用REGEXP
.
Select * from mytable
where `key`
REGEXP @sth
;
方法 3 是使用instr
.
select * from landlord
where instr(`key`,@sth) > 0
;
你也可以试试match
against
。但它似乎不适用于partial strings。
这是一个FullText
搜索,你的桌子必须能够做到这一点。MYISAM 是唯一可以进行全文搜索的表类型。假设您没有启用它,那么您可以使用以下几Alter
行修改表。使用FullText
搜索,您实际上是在列上添加索引。key
使用索引搜索变得更快。
`ALTER TABLE mytable ENGINE = MYISAM;`
Alter Table mytable
Add FULLTEXT(`key`)
;
Select * from mytable
where match(`key`)
against(%@sth% IN BOOLEAN MODE)
;