[英]MySQL Select data separated strings
我正在嘗試使用LIKE函數選擇記錄。 但是,如果中間有字符,則不會顯示結果。 我希望它選擇包含這些字符串的數據。 例如:
$value = "Mark Anthony";
$qry ="SELECT * FROM students WHERE name LIKE '%$value%'";
返回這些結果:
John Mark Anthony
Mark Anthony Philipps
但我也希望得到這樣的結果
Mark James Anthony
Mark Gabriel Anthony Fernandez
Marko Julian Anthonyo
有任何想法嗎? 更新:'馬克'必須在'安東尼'之前
我認為Full TEXT有效
但僅MyISAM
表支持全文搜索
SELECT * FROM students
WHERE MATCH (name)
AGAINST ('Mark Anthony' IN BOOLEAN MODE)
更新: -根據問題更新OP也需要搜索Marko
,那么你可以這樣: -
SELECT * FROM students
WHERE
(
name LIKE '%Mark%'
OR name LIKE '%Anthony%'
)
您可以將值字符串拆分為兩部分。 像這樣:
WHERE name LIKE '%Mark%' AND name LIKE '%Anthony%'
最后一次嘗試
$value = "Mark Anthony";
$value = str_replace(" ","%",$value);
$qry ="SELECT * FROM students WHERE name LIKE '%$value%'";
未經測試!
嘗試此解決方案 -
SELECT * FROM table WHERE column REGEXP '(Mark).+(Anthony)';
問題是,你說“帶來包含馬克安東尼的所有結果”,所以它確實如此。 你應該設置它
$value = "Mark%Anthony";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.