下面是我的
+++++++++++++++
+ id + myData +
+++++++++++++++
+ 1 + ABCD +
+ 2 + ABCDD +
+++++++++++++++
当我执行
select char_length((select myData from mytable where id = 1)) as MyLength;
我得到的结果是
++++++++++++
+ MyLength +
++++++++++++
+ 4 +
++++++++++++
但是当我执行查询时,
select char_length((select myData from mytable) as MyLength;
我得到的错误是
DDL and DML statements are not allowed in the query panel for MySQL; only SELECT statements are allowed.
Demo
最佳答案
您将整个查询输出包装在 CHAR_LENGTH()
中。将 WHERE id = 1
应用于子查询时,它返回一行,并且由于您选择了单个列,您将得到一个字符串值返回 CHAR_LENGTH()
将接受作为其参数。
如果子查询select mySata from mytable
返回多行,char_length()
不能接受它作为输入。相反,只需在常规 SELECT
语句中将 CHAR_LENGTH()
应用于 myData
即可查看多行的长度。
SELECT CHAR_LENGTH(myData) AS myLength FROM mytable
关于mysql - char_length 没有像想象的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162721/