我想只选择只有mysql数据的列。
在示例中,我将table1作为以下内容:
Table1
NAME VAL1 VAL2 VAL3 VAL4
A 1 2
B 2 3
C 3 3
从Table1中选择名称,val1,val2,val3,val4;
如何在mysql中只选择Name,val1,val2?
Result:
Table1
NAME VAL1 VAL2
A 1 2
B 2 3
C 3 3
此致
答案 0 :(得分:2)
您必须处理null
值,而您想要实现的目标是不可能的。因为在执行语句之前无法预测有多少列不会NULL
。
PHP或其他语言有许多简单的方法,可以根据您的需要整理结果。
答案 1 :(得分:0)
答案 2 :(得分:0)
实际上不可能,因为您希望在MySQL未设置的每一行上返回不同数量的列。因此,这是一个演示问题。
除此之外,您可以返回分组为单个记录的所有非空字段。
SELECT NAME, GROUP_CONCAT(CONCAT_WS(' - ',
IF(VAL1 IS NULL, NULL, CONCAT('VAL1=', VAL1)),
IF(VAL2 IS NULL, NULL, CONCAT('VAL2=', VAL2)),
IF(VAL3 IS NULL, NULL, CONCAT('VAL3=', VAL3)),
IF(VAL4 IS NULL, NULL, CONCAT('VAL4=', VAL4))))
FROM Table1
虽然使用起来相当可怕。