Sha*_*ing 9 mysql sql unicode collation unicode-normalization
原谅我的新手问题,但为什么要找'?' 或者Mysql中的'2'返回相同的记录?
例如:
假设我有一个名为'slug'的字符串字段的记录,值为'?'.以下SQL返回相同的记录.
SELECT * From articles WHERE slug='2'
SELECT * From articles WHERE slug='?'
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 13
它与数据库的整理有关:
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> SELECT '?'='2';
+-----------+
| '?'='2' |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)
mysql> SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT '?'='2';
+-----------+
| '?'='2' |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |