任何想法为什么这明智地*:
mysql> select lower('AB100c');
+-----------------+
| lower('AB100c') |
+-----------------+
| ab100c |
+-----------------+
1 row in set (0.00 sec)
但这不是吗?
mysql> select lower(concat('A', 'B', 100,'C'));
+----------------------------------+
| lower(concat('A', 'B', 100,'C')) |
+----------------------------------+
| AB100C |
+----------------------------------+
1 row in set (0.00 sec)
*明智地=“我认为它应该起作用的方式”。
最佳答案
如MySql String functions所述:
在您的代码中,您要传递100作为数字,因此concat将返回一个二进制字符串,并且在应用于二进制字符串时,lower无效,这就是为什么它不会被转换的原因。如果要进行转换,可以尝试以下操作:
select lower(concat('A', 'B', '100','C'));
关于MySQL concat()和lower()怪异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5906660/