文档归类:数据库
mysql指定ID排序,MySQL 按指定字段自定义列表排序,MySql查询结果排序
方法一、
[php]
select * from table1 order by instr('1,4,5,7,2',id)
[/php]
方法二、
[php]
select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5');
[/php]
方法三、
[php]
select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1);
[/php]
方法四、
[php]
select * from a where id in(8,11,3) order by field(id,8,11,3);
[/php]
大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同):
SELECT * FROM `MyTable`
WHERE `id` IN (1, 7, 3, 5)
ORDER BY `id` ASC
降序排列的 SQL 为:
SELECT * FROM `MyTable`
WHERE `id` IN (1, 7, 3, 5)
ORDER BY `id` DESC
有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序...
不要拦我,我一定要看完 »
这两天在测试项目,需要很多数据,于是就想到了mysql同表复制.
看代码:
[php]
INSERT INTO `table` ('id','aa','bb','cc') SELECT 'id','aa','bb','cc' FROM `table` (WHERE .....)
/**
* 复制新纪录的时候,可能要更新id或者是部分数据(假设id自增加的情况)
*
* text_aa 为固定值 ,可在脚本调用中赋变量值 如($aa)
* 注意'text_aa' 与 `cc` 的区别 ,一个是数据,一个是字段
**/
INSERT INTO `table` (`id`,`aa`,`bb`,`cc` ) SELECT '','aa内容','bb注意cc符号区别',`cc` FROM `table` (WHERE .....)
/**
* CONCAT(`bb`,'附加信息 -Copy')
* 在提取原有数据的基础上,增加附加信息 (windwos 下见过复件 xxxx.xxx 的都明白)
**/
INSERT INTO `table` (`id`,`aa`,`bb`,`cc` ) SELECT '','aa内容',CONCAT(`bb`,'附加信息 -Copy'),`cc` FROM `table` (WHERE .....)
[/php]
insert into table_name values select * from table_name; #复制自己
MySQL ...
世上尽有如此美文,快快阅读之 »