sql >> Databáze >  >> RDS >> Mysql

Hexadecimální znaky ve shodě regulárních výrazů v mysql

Toto odpovídá také:

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

Důvodem je, že \x je interpretováno jako x a a je mezi 1 a x . Zbytek vašeho regulárního výrazu jsou jen obyčejné znaky, které zde nejsou relevantní, protože jsou již v rozsahu [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.

Nejsem si jistý, čeho se snažíte dosáhnout, ale pokud chcete hex znaky, můžete použít funkci hex:

SELECT HEX('a')
61


  1. Jak funguje @@MAX_CONNECTIONS na serveru SQL Server

  2. Doctrine2:Nelze vybrat entitu prostřednictvím identifikačních proměnných bez výběru alespoň jednoho aliasu kořenové entity

  3. Přístavní dělník. Obrázek MySQL. Soubor my.cnf nelze změnit

  4. Návrh dočasné databáze se zvratem (živé vs. koncepty)