mysql - 如何按字母顺序查询多个表?

标签 mysql sql

我只能将此查询应用于一个表,我想将它应用于一个临时表中的 5 个表,并按字母顺序制作记录。因为它有超过 5000 条记录的卡住问题,解决方案是在开始“一封信”时应用记录 在“b 字母”之后 .... 到结尾,例如“z 字母”

阿曼达 安娜贝尔 . . . 飞艇 赞比亚

重要的是第一个字母应该按字母顺序排列

不久我想创建一个临时表并在第一个字母上按字母顺序应用查询。我该怎么做?

UPDATE
  names INNER JOIN
  (SELECT   n1.id, n1.name, count(n2.id)+1 cnt
   FROM     names n1 INNER JOIN names n2
            ON n1.name=n2.name AND n1.id>n2.id
   GROUP BY n1.id, n1.name) s
  ON names.id = s.id
SET
  names.name = CONCAT(names.name, '.', s.cnt)

最佳答案

如果您想从多个表中收集数据,我会使用 UNION 或者 - 如果您不想/不需要过滤掉重复项 - UNION ALL(这应该会快一点)。

例子:

SELECT col1, col2
FROM table1
UNION ALL
SELECT col3, col4
FROM table2

如果你想要它排序,这就是方式(如果我没记错的话)

SELECT col1 as column1, col2 as column2
FROM table1
UNION ALL
SELECT col3 as column1, col4 as column2
FROM table2
ORDER BY column1

如果您遇到性能问题,请考虑将临时表设为实际表。您可以在(重新)填充之前通过简单地截断它来“清理”它,然后您可以对要添加的每个表使用插入查询。无需对其进行排序,因为您只需在表上执行 SELECT/ORDER BY。

如果以上内容对您没有帮助,也许您可​​以添加一个示例,说明您从哪些数据开始以及想要的结果?

关于mysql - 如何按字母顺序查询多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962493/

相关文章:

php - 添加数据库时如何避免重复输入

sql - 在限制行大小和表成员资格的同时加速内部联接和子查询

java - 数据截断 : Incorrect datetime value

php - 我应该使用数据库还是 php 创建哈希

sql - Oracle Date数据类型,通过SQL转换为 'YYYY-MM-DD HH24:MI:SS TMZ'

sql - 使用CTE和行号作为序列进行更新,或者使用ROW_NUMBER()进行TSQL更新查询

mysql - SQL选择: How to multiply a column with the count of an ID

mysql - SQl 查询 - 每组有 2 个最高值,第二个必须是 "younger",然后是第一个

mysql - 如何执行sql操作根据与另一个表的主键匹配将数据插入到第二个表中?

php - 单引号导致更新 SQL 失败