mysql进行排序的时候如果需要按照原始的顺序排序,就可以使用order by find_in_set()方法,具体用法如下: select * from ecs_goods where goods_id in (idLiSsid,′idList') 这句mysql语句用到了find_in_set进行排序,意思是根据goods_id在$idList这个变量中的前后顺序进行排序。 find_in_set除了可以用在order by...
答案:这两个SQL函数在平时真心没用使用到过啊 find_in_set() 和 substring_index() 用法是这样: select * from table order by substring_index('3,1,2,5',id,1); select * from table order by find_in_set(id,'3,1,5')
SELECT*FROMusersORDERBYFIND_IN_SET('admin', roles)DESC; AI代码助手复制代码 2.3 结合其他函数使用 FIND_IN_SET()函数可以与其他函数结合使用,以实现更复杂的查询。例如,我们可以使用CONCAT()函数将多个字段组合成一个逗号分隔的字符串,然后使用FIND_IN_SET()函数进行查找。 SELECT*FROMusersWHEREFIND_IN_SET(...
所以如果要让(一)能正确工作,需要用find_in_set(): select id, list, name from table where FIND_IN_SET( 'daodao' , list); (一)的改进版。 总结:所以如果list是常量,则可以直接用IN, 否则要用FIND_IN_SET()函数 FIND_IN_SET(str,strlist) 假如字符串str在由N子链组成的字符串列表strlist中, ...
select * from table_name where id in ()或者select * from table_name where find_in_set()的时候,MySQL会自动按主键自增排序,要是按给定的顺序来取,如何实现呢? 1、使in按顺序查出来select ID from IndexData where Type=2 and RelateID in(2,4,1,3) order by FIND_IN_SET(RelateID,'2,4,1,...
今天在做项目时,看到了一个从没见过的MySQL函数——FIND_IN_SET(),顿时就产生了浓郁的兴趣,然后就搜了搜,翻了翻。 语法:FIND_IN_SET(str,strlist) 定义: 1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间。
ORDER BY FIND_IN_SET(3, categories):按照产品在类别列表中的顺序进行排序。LIMIT 10 OFFSET 10:限制每页显示的结果数量为 10,并跳过前 10 个结果(即获取第 2 页的结果)。请注意,这个查询可能在大型数据集上性能较差,因为它需要对每个产品计算 FIND_IN_SET() 的值。在实际应用中,您可能需要考虑优化表结构...
MySQL 8.0.23上遇到一个FIND_IN_SET的BUG 在MySQL8.0.23出现执行SQL超时的报错,而在MySQL8.0.18版本上未出现,故做个记录,以飨读者。 2、故障提要 在客户MySQL版本8.0.23,在部署客户测试环境时出现SQL执行超时报错。通过慢日志查询,找到对应的SQL。SQL如下:...
order by find_in_set( id, '783, 769, 814, 1577, 1769' )查出来:769 1577 814 1769 783 为什么不是 783 769 814 1577 1769 的顺序?注意:经查找后原因出在find_in_set⾥⾯,如果find_in_set的第⼆个参数中有空格将导致顺序乱掉,因为mysql查询之前不会给你trim空格符。so...去空格后:select...
select * from table where 1 order by id*1 desc; 或者 select * from table where 1 order by id+0 desc; 除了上述方法外,这里附上一种排序方法,利用find_in_set()进行无敌排序 附上Mysql函数 find_in_set() 的用法: --- 举个例子来说: 有个文章表里面有个type字段,他存储的是文章类型,有 1头...