我有一个带有
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]
不起作用(我尝试过),但我该怎么做呢?
SET
是作为有序列表实现的。SET
声明中的第一项。INSERTing
和 SELECTing
都充当列的值作为comalist。SUBSTRING_INDEX
就是答案:要查看它,请在您的桌子上尝试一下:
SELECT testset, SUBSTRING_INDEX(testset, ',', 1) FROM test
ORDER BY RAND() LIMIT 11;