MySql中的任何字符串匹配后如何检索数据?

时间:2019-04-11 09:17:25

标签: mysql

我希望在给定数据中的任何字符串匹配后检索数据。

例如,我的数据字符串为:“ K Anil Babu”

我在表register_table中有与列作者匹配的数据,这些列与给定的字符串匹配为: Anil,Anil Babu,anil,Anil B,anil babu。

我将查询用作:

 select authors from register_table WHERE authors like '%K Anil Babu%';

当我执行此查询时,没有数据显示。 如何匹配和显示具有给定字符串的任何字符串

1 个答案:

答案 0 :(得分:3)

尝试一下

SELECT authors 
FROM register_table 
WHERE LOCATE(authors, "K Anil Babu");

结果

+-----------+
|  authors  |
+-----------+
| Anil      |
| Anil Babu |
| anil      |
| Anil B    |
| anil babu |
+-----------+

演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=e9ff92d64f0fefda039d451d8e903f79


表结构和示例数据

CREATE TABLE register_table(
    authors_id int,
    authors varchar(255)
);

INSERT INTO register_table
VALUES  
(1, 'Sunil'),
(2, 'Anil'),
(3, 'Anil Babu'),
(4, 'anil'),
(5, 'Anil B'),
(6, 'anil babu'),
(7, 'Patsy W. Duncan'),
(8, 'Jeffery E.'),
(9, 'Herbst'),
(10, 'Andrew C. Mack');

参考:https://www.w3schools.com/SQl/func_mysql_locate.asp