如何选择 SET() 中的第一个元素?

问题描述 投票:0回答:1

我有一个带有

SET
字段的表格:

CREATE TABLE `test` (`testset` set('one','two') )

有一些记录:

SELECT * FROM test;
+---------+
| testset |
+---------+
| one     |
| two     |
| one,two |
+---------+

如何

SELECT
每条记录的第一个元素?所以在这种情况下,那就是

SELECT testset[0] FROM test;
+---------+
| testset |
+---------+
| one     |
| two     |
| one     |
+---------+

当然,

testset[0]
不起作用(我尝试过),但我该怎么做呢?

mysql indexing set
1个回答
0
投票
  • MySQL
    SET
    是作为有序列表实现的。
  • 它存储在一个整数中,底部位代表
    SET
    声明中的第一项。
  • INSERTing
    SELECTing
    都充当列的值作为comalist。
  • 实现有顺序,概念没有。
  • 所以...
    SUBSTRING_INDEX
    就是答案:

要查看它,请在您的桌子上尝试一下:

SELECT testset, SUBSTRING_INDEX(testset, ',', 1) FROM test
    ORDER BY RAND()  LIMIT 11;
© www.soinside.com 2019 - 2024. All rights reserved.