mysql - mysql中选择带空格的记录

标签 mysql sql

我有一列包含许多具有一个共同词的记录(例如 channel 名称):

|        channel        |
--------------------------
| Fox                   |
| Fox Life              |
| Fox News              |
| Fox Action            |
| Fox Movies            | 

搜索条件是:“福克斯新闻 channel ”

现在我想选择唯一包含福克斯新闻的行。

我尝试了很多方法,例如用空格分割字符串,或者使用 LIKE 但没有成功,因为单词“Fox”总是选择所有五个记录。

请注意,它必须是字级匹配。

谢谢

最佳答案

这对全文索引来说是尖叫

ALTER TABLE T add FULLTEXT index(channel);

您搜索

SELECT * FROM t WHERE MATCH (channel)
    AGAINST ('+Fox +News' IN BOOLEAN MODE);

加号表示该单词必须存在于该列中 有几点需要注意:

innodb_ft_min_token_size

搜索词的最小大小

stop words

关于mysql - mysql中选择带空格的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707368/

相关文章:

mysql - 在 mySQL 中查找具有特定状态的重复项

sql - 外连接/联合?- t/sql 查询

php - 如何将列添加到数据库中的 wp_post 表?

mysql - DataTable .clear 不会删除以前的数据

MySQL 意外崩溃

sql - Teradata - 调用名称中包含空格的表

mysql - 涉及计数的非常基本的 SQL 查询

php - 在 Codeigniter 上创建权限而不检查 URI 段

sql - 如何检查SQL中的列中是否存在特定字符串? (例如 : need to find 'ice' only but not 'service' )

php - 用php上传数据到mysql