programing

MariaDB Bugs?LIKE Escape

sourcetip 2022. 10. 8. 16:44
반응형

MariaDB Bugs?LIKE Escape

서버 버전: 10.1.21-MariaDB-1~jessie

select 'a%b' like '%\%\%';
+--------------------+
| 'a%b' like '%\%\%' |
+--------------------+
|                  1 |
+--------------------+
1 row in set (0.00 sec)

like 절은 'syslog + 리터럴 % + 리터럴 %'를 나타내지만 'a%b'와 일치합니다.

또는

select 'a%b' like '%\%\%\%\%\%';
+--------------------------+
| 'a%b' like '%\%\%\%\%\%' |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0.00 sec)

MySQL 5.5.38은 두 문 모두에 대해 0을 반환합니다.MariaDB 구문이 다른가요?


더하다

@rahul은 구문이 잘못되었다고 지적했기 때문에 더미 테이블을 생성하여 실행했습니다.

SELECT * FROM `table1` where 'a%b' like '%\%\%';

테이블 내의 모든 행과 일치합니다.

그러나 실행 시 필드1='a%b' 행이 일치하지 않습니다.

SELECT * from `table` where field1 like '%\%\%';

이제 10.1.22에서 테스트합니다.

이것은 10.1.22에서 수정된 것 같습니다.

Server version: 10.1.22-MariaDB-1~xenial mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select 'a%b' like '%\%\%';
+--------------------+
| 'a%b' like '%\%\%' |
+--------------------+
|                  0 |
+--------------------+
1 row in set (0.00 sec)

언급URL : https://stackoverflow.com/questions/42924664/mariadb-bugs-like-escaping-broken

반응형