Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znaki szesnastkowe w dopasowaniu do wyrażenia regularnego w mysql

To też pasuje:

SELECT CONVERT('a' USING BINARY) REGEXP '[1-\x]'

Powodem jest to, że \x jest interpretowany jako x i a mieści się między 1 i x . Reszta Twojego wyrażenia regularnego to zwykłe znaki, które nie są tutaj istotne, ponieważ znajdują się już w zakresie [1-x].

SELECT CONVERT('0' USING BINARY) REGEXP '[\x61-\x61]' -- Fails, because 0 < 1.
SELECT CONVERT('1' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('2' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
...
SELECT CONVERT('w' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('x' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('y' USING BINARY) REGEXP '[\x61-\x61]' -- Fails, because y > x.

Nie jestem pewien, co chcesz osiągnąć, ale jeśli chcesz znaków szesnastkowych, możesz użyć funkcji szesnastkowej:

SELECT HEX('a')
61


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 8 — Usuń wszystkie procedury przechowywane w określonej bazie danych

  2. Wydajność MYSQL IN

  3. Czy lepiej jest użyć INNER JOIN lub EXISTS, aby znaleźć przynależność do kilku w relacji m2m?

  4. Wstawianie danych blob w Javie za pomocą PreparedStatement

  5. zapytanie mysql, aby wybrać wszystkie wiersze z bieżącego miesiąca?