2017-05-05 267 views
0

我想搜索一个MySQL数据库的作者姓名。这些问题是相同的作者姓名可以以各种方式拼写(或输入到数据库)。我需要检查类似的名字。MySQL搜索其中字符串包含

我的authors表的示例如下;

+---------+-------------+ 
| id  | author  | 
+---------+-------------+ 
| 1  | JK Rowling | 
+---------+-------------+ 
| 2  | J.K Rowling | 
+---------+-------------+ 
| 3  | Rowling JK | 
+---------+-------------+ 
| 4  | Rowling J.K | 
+---------+-------------+ 
| 5  | JK. Rowling | 
+---------+-------------+ 
| 6  | Jim Jones | 
+---------+-------------+ 

我想查找'J.K Rowling'的所有书籍,所以我正在使用的查询是;

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%J.K Rowling%' 

返回no results

SELECT * 
FROM `authors` 
WHERE `author` LIKE 'J.K Rowling%' 

返回no results

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%J.K Rowling' 

返回no results

我该如何构建查询才能返回类似作者

感谢

+0

什么是列'item_author' - 不在您的示例中。 – TZHX

+1

是不是'item_author'假设是'author'? –

+0

道歉我编辑了这个问题。错字 –

回答

0

看来,类似的名称是罗琳,所以我应该有这种尝试。

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%Rowling%' 
+0

我无法做到这一点,我正在搜索整个字符串。整个字符串是任何行中的:/谢谢 –

0

那是因为你使用%J.K Rowling%这意味着该进程将只在有J.K Rowling和不多不少行搜索。根据你的数据库,其上没有J.K Rowling。你可能想尝试Rowling或类似的东西。

+0

J.K罗琳在数据集中 –

相关问题