簡體   English   中英

MySQL查詢按一組空格分隔的值進行搜索

[英]MySQL query for search by set of space separated values

我有一個樣本表:

Firstname Lastname Company  Age
Peter     Johnson  Google   28
John      Wayne    Yahoo    30

我需要編寫一個MySQL查詢,該查詢通過用空格分隔的一組值執行搜索。 像這樣:

Exec find_records 'Bill Johnson Google 30';

查詢應返回:

Firstname Lastname  Company  Age
Peter     Johnson   Google
John      Wayne     Yahoo 

將不勝感激任何想法! 謝謝!

如果使用的是MyISAM表,則可以使用以下命令在與搜索和查詢相關的列上添加全文索引:

SELECT
  firstname,
  lastname,
  company,
  age,
  MATCH(firstname, lastname, company, age) AGAINST('Bill Johnson Google 30') as rank
FROM
  your_table
HAVING
  rank > 0
ORDER BY
  rank DESC

SQLFiddle

select *
from t
where 
FIND_IN_SET(FirstName,REPLACE('Bill Johnson Google 30',' ',','))>0
or
FIND_IN_SET(Lastname,REPLACE('Bill Johnson Google 30',' ',','))>0
or
FIND_IN_SET(Company,REPLACE('Bill Johnson Google 30',' ',','))>0
or 
FIND_IN_SET(Age,REPLACE('Bill Johnson Google 30',' ',','))>0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM