gpt4 book ai didi

php - SQL 按案例排序错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:40 25 4
gpt4 key购买 nike

我创建了一个 SQL 语句,该语句应返回一个项目列表,该列表按与所提供的三个词的相关性排序。 (TAG_1、TAG_2 等)。这是代码:

$sql = mysql_query("SELECT * FROM SEARCH_POSTS WHERE(
POST_TAG_1 LIKE '%{$_POST['TAG_1']}%'
OR POST_TAG_1 LIKE '%{$_POST['TAG_2']}%'
OR POST_TAG_1 LIKE '%{$_POST['TAG_3']}%'
OR POST_TAG_2 LIKE '%{$_POST['TAG_1']}%'
OR POST_TAG_2 LIKE '%{$_POST['TAG_2']}%'
OR POST_TAG_2 LIKE '%{$_POST['TAG_3']}%'
OR POST_TAG_3 LIKE '%{$_POST['TAG_1']}%'
OR POST_TAG_3 LIKE '%{$_POST['TAG_2']}%'
OR POST_TAG_3 LIKE '%{$_POST['TAG_3']}%'
) ORDER BY(
CASE
WHEN POST_TAG_1 LIKE '%{$_POST['TAG_1']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_1 LIKE '%{$_POST['TAG_2']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_1 LIKE '%{$_POST['TAG_3']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_2 LIKE '%{$_POST['TAG_1']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_2 LIKE '%{$_POST['TAG_2']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_2 LIKE '%{$_POST['TAG_3']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_3 LIKE '%{$_POST['TAG_1']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_3 LIKE '%{$_POST['TAG_2']}%' THEN 1
ELSE 0
END CASE +
CASE
WHEN POST_TAG_3 LIKE '%{$_POST['TAG_3']}%' THEN 1
ELSE 0
END CASE) DESC");

WHERE 子句工作正常,但 ORDER BY(...) 似乎给我一个错误。我究竟做错了什么?一切看起来都井井有条。谢谢。

最佳答案

END CASE 应该只是 ENDEND CASE用于结束存储过程中的CASE语句,不用于结束CASE表达式。

关于php - SQL 按案例排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com