gpt4 book ai didi

mysql - 使用 LIKE '%variable%' 对 mySql 结果进行排序

转载 作者:行者123 更新时间:2023-11-29 01:23:46 26 4
gpt4 key购买 nike

我的网站上有一个搜索表单,允许用户搜索公司的员工。我正在使用输入来搜索 mySql 数据库中的表。我的 SELECT 状态在这里:

SELECT title, uid FROM table_data 
WHERE title LIKE '%$search_name%' AND blog_id = 6
ORDER BY title ASC LIMIT 50

目前,搜索“Jon”会得到如下结果:

Angela Jones
Dejonas Lucero
Ernesto Jon
Jon White
Rick Jonston

有没有办法让它按这个顺序排序?

search_name%
%search_name
%search_name%

Jon White
Ernesto Jon
Angela Jones
Dejonas Lucero
Rick Jonston

最佳答案

这是一种实现方式,虽然我觉得它不是很优雅:

SELECT title, uid FROM table_data 
WHERE title LIKE '%$search_name%' AND blog_id = 6
ORDER BY IF( title LIKE '$search_name%',0,
IF( title LIKE '%$search_name', 1, 2 ) )

限制 50

如果匹配“search_name%”,它会为每个标题分配“0”,如果匹配“%search_name”,则分配 1,否则分配 2(根据 WHERE 子句,这是“%search_name%”)。

然后按它排序(升序)。

您也可以使用 CASE WHEN..THEN..END 语句来实现:

SELECT title, uid FROM table_data 
WHERE title LIKE '%$search_name%' AND blog_id = 6
ORDER BY CASE WHEN title LIKE '$search_name%' THEN 0
WHEN title LIKE '%$search_name' THEN 1
ELSE 2
END

关于mysql - 使用 LIKE '%variable%' 对 mySql 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321530/

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