MYSQL:从两个不同的表中选择 VARCHAR 字段中的最大值

标签 mysql sql

我是MYSQL的新手。有两个表,即表A和表B。只需要两个不同表的最大值。
预期输出:

AG/2016-17/P/046


  table_A                                 
       In_No
     AG/2016-17/P/01
     AG/2016-17/P/029
     AG/2016-17/P/030

     table_B
      In_No
 AG/2016-17/P/01
 AG/2016-17/P/046
 AG/2016-17/P/015

SQL:

select MAX(bv) from(
SELECT MAX(CAST(SUBSTRING(In_No, 14, length(In_No)-3) bv AS UNSIGNED)) FROM table_A
union all
SELECT MAX(CAST(SUBSTRING(In_No, 14, length(In_No)-3) bv AS UNSIGNED)) FROM table_B) as a

出了点问题。它没有显示正确的输出。请建议我。提前致谢。

最佳答案

试试这个:

SELECT In_No, substring_index(In_No, '/', 2) AS In_No_sub
FROM (
    SELECT In_No FROM table_A
    UNION ALL
    SELECT In_No FROM table_B
) t
ORDER BY substring_index(In_No, '/', -1) + 0 DESC
LIMIT 1

SQLFiddle Demo

关于MYSQL:从两个不同的表中选择 VARCHAR 字段中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394027/

相关文章:

mysql - 为每个数据库运行查询(mysql)

php - 需要找到一个外部数据库的前缀

sql - Oracle 每月总计以及列和行总计

mysql - 我正在尝试使用通配符在 MySQL 中进行搜索和替换

mysql - 如何有效地更改具有数百万条目的表上的 MySQL 表结构?

mysql - 数据库将 CSV 加载到多个表中

java - 使用java在mysql中将大量记录从一个表移动到另一个表

SQL SUBSTR错误: What is the correct syntax?

mysql - 如何优化这个依赖日期值的 JOIN 查询?

sql - 为客户生成 SQL 升级脚本