我被困在那里我有一定的id,我需要先建立索引的结果,以便他们安排(一个问题,不按字母顺序设置后,这些应该索引这些ID在数组中)和其他记录按字母顺序提取,但在其后显示。提取记录中提供ID的顺序和
例如我的SQL查询提到如下:
SELECT *
FROM `users` `t`
ORDER BY field(`t`.`id` , 3694181860160, 3690073978560, 3692021760768, 3696518283776, 3694455712256, 3698627050368, 3694698638592, 3696980086784, 3693461701760)
应该以(3694181860160,3690073978560,3692021760768,3696518283776,3694455712256,3698627050368,3694698638592,3696980086784,3693461701760)第一和所有其余的带记录的记录应按照字母顺序显示。
自提名单,但在记录随机顺序和休息目前我得到的记录是不知道他们是如何排序。
我也曾尝试使用
order by find_in_set
获取的结果,但它也不能工作。
请帮忙。
以下是我的表结构:除了对于所提到的IDS
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`fname` varchar(30) NOT NULL,
`lname` varchar(30) NOT NULL,
`email` varchar(50) NOT NULL,
`password` varchar(100) DEFAULT NULL,
`display_picture` varchar(255) DEFAULT NULL,
`last_login` datetime NOT NULL,
`reg_date` datetime NOT NULL,
`user_type` enum('admin','user') NOT NULL DEFAULT 'user',
`status` enum('0','1') NOT NULL DEFAULT '1',
`email_verified` enum('0','1') NOT NULL DEFAULT '0',
`feed_visibility` enum('public','relation','private') NOT NULL DEFAULT 'relation',
`groups` text NOT NULL,
`contact_allowance` enum('public','private','relation') NOT NULL DEFAULT 'public',
`search_allowance` enum('0','1') NOT NULL DEFAULT '1',
`country` int(11) NOT NULL,
`dob` date NOT NULL,
`gender` enum('male','female') DEFAULT NULL,
`fb_id` varchar(50) NOT NULL,
`state` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`street` varchar(255) NOT NULL,
`is_admin` tinyint(1) NOT NULL DEFAULT '0',
`flame_name` varchar(50) NOT NULL,
`device_id` varchar(100) DEFAULT NULL,
`fav_cat` text,
`credits` int(20) DEFAULT NULL,
`privacy_setting` varchar(255) DEFAULT NULL,
`is_deleted` tinyint(4) NOT NULL DEFAULT '0',
`reason_to_delete_account` varchar(255) NOT NULL,
`verification_hash` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
,我想通过自己的FNAME和LNAME排序记录休息,如果他们不为空。
我还应该提到,括号中的ID是从另一个表中提取的。
我想我也应该提到,我想聪明的用户获取他们的级别。用户排名计算并记录在Mongo数据库的单独表中。 “用户”表保留MySql中所有用户的记录。 很难描述排名的表结构。但是我们从排名表中获取user_id和rank字段。
我获取用户ID,他们从排行表排名聪明,并试图从用户表中提取用户信息序到所有用户都显示他们的排名明智的页面显示出来。其中很少用户没有达到排名,所以他们的排行榜还没有上榜。我想他们在自己的FNAME,LNAME的字母进行排序(如果他们有FNAME,LNAME)
.........
我重新思考过它只有返回这些记录是通过排名表获取的。因此,当排名表中有更多记录可用时,页面将显示更多记录。我正在使用查询为
SELECT * FROM `users` `t` where `t`.`id` in (3694181860160, 3690073978560, 3692021760768, 3696518283776, 3694455712256, 3698627050368, 3694698638592, 3696980086784, 3693461701760)
ORDER BY field(`t`.`id` , 3694181860160, 3690073978560, 3692021760768, 3696518283776, 3694455712256, 3698627050368, 3694698638592, 3696980086784, 3693461701760) ASC
它工作正常,随着时间的推移,这将显示越来越多的用户。
请提供表格的结构。你试图分类的其他领域是什么? – rlanvin
你试过这个:http://stackoverflow.com/questions/6332043/sql-order-by-multiple-values-in-specific-order – Ali
@Ali我链接你提及对我没有用,因为括号中的值我提到的不是静态的,随着时间的推移会随着用户的等级变化而随着时间的增长而不断变化。 –