简体   繁体   English

如何按多个值在哪里GROUP_CONCAT列顺序?

[英]How to GROUP_CONCAT column order by where in (multiple values)?

My code in mysql given below is 我在mysql中给出的代码如下

 select GROUP_CONCAT(table_name,'.',column_name,'  as',table_name,'_',column_name) as column_list from INFORMATION_SCHEMA.COLUMNS where table_name in ('country_details','state_details', 'city_details');

I got the result given below starts with city_details.id as city_details_id ,.. 我得到以下给出的结果,以city_details.id开头为city_details_id ,..

Result (starts from city_details,country_details,state_details ) 结果 (从city_details,country_details,state_details开始

city_details.id as city_details_id, city_details.city_name as city_details_city_name, city_details.state_id as city_details_state_id, country_details.id as country_details_id, country_details.sortname as country_details_sortname, country_details.country_name as country_details_country_name, country_details.phonecode as country_details_phonecode, state_details.id as state_details_id, state_details.state_name as state_details_state_name, state_details.country_id as state_details_country_id city_details.id如city_details_id,city_details.city_name如city_details_city_name,city_details.state_id如city_details_state_id,country_details.id如country_details_id,country_details.sortname如country_details_sortname,country_details.country_name如country_details_country_name,country_details.phonecode如country_details_phonecode,state_details.id如state_details_id,state_details。 state_name作为state_details_state_name,state_details.country_id作为state_details_country_id

Expected Result (Starts from country_details,state_details,city_details ) 预期结果 (从country_details,state_details,city_details开始

country_details.id as country_details_id,country_details.sortname as country_details_sortname,country_details.country_name as country_details_country_name, country_details.phonecode as country_details_phonecode,state_details.id as state_details_id,state_details.state_name as state_details_state_name, state_details.country_id as state_details_country_id,city_details.id as city_details_id, city_details.city_name as city_details_city_name, city_details.state_id as city_details_state_id country_details.id如country_details_id,country_details.sortname如country_details_sortname,country_details.country_name如country_details_country_name,country_details.phonecode如country_details_phonecode,state_details.id如state_details_id,state_details.state_name如state_details_state_name,state_details.country_id如state_details_country_id,city_details.id如city_details_id,city_details。 city_name作为city_details_city_name,city_details.state_id作为city_details_state_id

I don't know how to fix this issue so anyone please guide me to solve this issue. 我不知道如何解决此问题,因此任何人都请指导我解决此问题。

Here I used Order by Field code given below it also give the same issue. 在这里,我使用下面给出的“按字段排序”代码,它也会产生相同的问题。

SELECT group_concat(table_name,'.',column_name,' as  ',table_name,'_',column_name) as column_list  FROM INFORMATION_SCHEMA.COLUMNS where table_name in ('country_details','state_details', 'city_details')ORDER BY FIELD(table_name,'country_details','state_details', 'city_details');

The ORDER BY at the end of your query does nothing, because your query contains only one result row. 查询末尾的ORDER BY不会执行任何操作,因为查询仅包含一个结果行。 (Any query with an aggregate function like COUNT or GROUP_CONCAT will contain only one row unless the query has a GROUP BY clause.) (除非查询具有GROUP BY子句,否则任何具有COUNT或GROUP_CONCAT等聚合函数的查询都将仅包含一行。)

You can put ORDER BY inside your GROUP_CONCAT aggregating function, however. 但是,您可以将ORDER BY放在GROUP_CONCAT聚合函数中。 Like this: 像这样:

SELECT GROUP_CONCAT(
             table_name,'.',column_name,' as  ',table_name,'_',COLUMN_NAME 
             ORDER BY FIELD(table_name,'country_details','state_details', 'city_details'), 
                      ordinal_position 
       ) AS column_list
  FROM INFORMATION_SCHEMA.columns
 WHERE table_name IN ('country_details','state_details', 'city_details')

(Using ordinal_position to order puts the columns of each table in the same order they appear in the table definitions.) (按顺序使用ordinal_position可使每个表的列按它们在表定义中出现的顺序排列。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM