我有一个SQL搜索语句的例子,在这里,我试图先按照相关性顺序找到字符串的部分。所以它首先搜索“一二三”的完整字符串,然后继续搜索“一二三”,最后一直搜索到一个单词,但它从不向后搜索。只是为了秩序。例如,它永远不会搜索“三二一”,而只搜索“一二三”,我想知道是否可以将所有这些单个查询语句组合成单个查询?谢谢您。
$text1 = "one";
$text2 = "two";
$text3 = "three";
SELECT text FROM tableName WHERE text LIKE "$text1 $text2 $text3"
SELECT text FROM tableName WHERE text LIKE "$text1 $text2"
SELECT text FROM tableName WHERE text LIKE "$text2 $text3"
SELECT text FROM tableName WHERE text LIKE "$text1"
SELECT text FROM tableName WHERE text LIKE "$text2"
SELECT text FROM tableName WHERE text LIKE "$text3"
最佳答案
对。您可以搜索它们,然后按相关性排序。有一种方法:
SELECT text
FROM tableName
WHERE text LIKE "$text1" OR
text LIKE "$text2" OR
text LIKE "$text3"
ORDER BY (text LIKE "$text1 $text2 $text3") DESC,
(text LIKE "$text1 $text2") DESC,
(text LIKE "$text2 $text3") DESC,
(text LIKE "$text1" ) DESC,
(text LIKE "$text2" ) DESC,
(text LIKE "$text3" ) DESC
关于php - 根据字符串相关性和字符串顺序在数据库中搜索字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32598291/