例如:select * from table where id in ('783',' 769',' 814',' 1577',' 1769')
order by find_in_set( id, '783, 769, 814, 1577, 1769' )
查出来是769
1577
814
1769
783
SQLmysqlfind_in_set排序field
order by find_in_set( id, '783, 769, 814, 1577, 1769' )
查出来是769
1577
814
1769
783
SQLmysqlfind_in_set排序field
贴建表及插入记录的SQL
这样就可以看到为什么了
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`brand_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`name` text NOT NULL,
`click_count` int(10) unsigned NOT NULL DEFAULT '0',
`number` smallint(5) unsigned NOT NULL DEFAULT '0',
`salesnum` int(10) NOT NULL DEFAULT '0',
`desc` text NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=6082 DEFAULT CHARSET=utf8;
INSERT INTO `goods` VALUES ('901', '26', 'T恤---售馨', '939', '1', '', '')
INSERT INTO `goods` VALUES ('901', '26', 'T恤---售馨', '939', '1', '', '')
INSERT INTO `goods` VALUES ('783', '26', '雪纺上衣', '639', '5', '', '')
INSERT INTO `goods` VALUES ('814', '26', '雪纺上衣', '1059', '19', '', '')
INSERT INTO `goods` VALUES ('1577', '26', '短袖荷叶领', '647', '87', '', '')
INSERT INTO `goods` VALUES ('1769', '26', '透气纯色纽扣上衣', '2451', '24', '', '')
INSERT INTO `goods` VALUES ('1642', '26', ' 纯色短袖', '534', '64', '', '')
order by find_in_set( id, '783,769,814,1577,1769')
find_in_set中的字符串空格去掉
去掉还是升序的 ·· 不按where in的顺序
去掉空格
Query OK, 0 rows affected (0.00 sec)mysql> SELECT * FROM `goods1` WHERE id IN ('783','769','814','1577','1769')
->
-> ORDER BY FIND_IN_SET(id, '783,769,814,1577,1769' ) ;
+------+----------+------------------+-------------+--------+----------+------+
| id | brand_id | name | click_count | number | salesnum | desc |
+------+----------+------------------+-------------+--------+----------+------+
| 783 | 26 | 雪纺上衣 | 639 | 5 | 0 |
|
| 814 | 26 | 雪纺上衣 | 1059 | 19 | 0 |
|
| 1577 | 26 | 短袖荷叶领 | 647 | 87 | 0
| |
| 1769 | 26 | 透气纯色纽扣上衣 | 2451 | 24 |
0 | |
+------+----------+------------------+-------------+--------+----------+------+
4 rows in set (0.01 sec)mysql>
去掉还是升序的 ·· 不按where in的顺序
你到底是要按什么顺序,这样写本来就是按783,769,814,1577,1769这个顺序的
哦 ok了 ok了 抱歉我是在 @rucypli的例子上试的 ,原来find_in_set要这么用才行···· 谢谢大家 谢谢谢谢
去掉还是升序的 ·· 不按where in的顺序
你到底是要按什么顺序,这样写本来就是按783,769,814,1577,1769这个顺序的恩恩 现在ok了 很感谢大家···