我需要按以下顺序输出(首先,按最后3个字母分组,然后根据前3个数字进行排列)
ColumnA 001_eng 004_eng 002_chn 003_usa
但是ColumnA的订单给了我
ColumnA 001_eng 002_chn 003_usa 004_eng
这只是示例数据。我有成百上千的这种格式的条目,并且值每天都在变化。因此,指定字段内的所有条目不是一个可行的选择。我不确定在我的情况下如何使用FIELD()。
SUBSTRING_INDEX
如果所有ColumnA
值的格式都与示例数据中的格式相同,则可以使用:
SELECT *
FROM mytable
ORDER BY FIELD(SUBSTRING_INDEX(ColumnA, '_', -1), 'eng', 'chn', 'usa'),
SUBSTRING_INDEX(ColumnA, '_', 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句