복붙노트

[SQL] 방법 정규식에서 MySQL의 쿼리

SQL

방법 정규식에서 MySQL의 쿼리

내가 문자열 문자와 그 후 한 자리로 시작하는 기록을 검색 할 필요가 간단한 작업을해야합니다. 내가 노력하고있어 이것이다

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA[d]%')

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA[0-9]%')

그러나 쿼리 모두는 항상 널 (null) 기록을 반환

trecord
-------
null

어디에서 다음 쿼리를 실행하면 같은

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA%')

그것은 반환

trecord
-------
ALA0000
ALA0001
ALA0002

그것은, 내가 후 ALA와 숫자로 시작 기록을 가지고 있음을 의미

편집하다

나는 특정을 할 PHP MySQL과 이노 엔진을 사용하고 있어요.

해결법

  1. ==============================

    1.난 당신이 정규 표현식 대신 LIKE를 사용할 수 있다고 생각

    난 당신이 정규 표현식 대신 LIKE를 사용할 수 있다고 생각

    SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')
    
  2. ==============================

    2.내 경우 (오라클)에서는 WHERE REGEXP_LIKE (열, '정규 표현식. *')입니다. 여기를 봐:

    내 경우 (오라클)에서는 WHERE REGEXP_LIKE (열, '정규 표현식. *')입니다. 여기를 봐:

    (물론, REGEXP_LIKE은 당신이 완전한 일치를 원하는 그렇다면, 당신은 시작 (^)과 끝 ($) 일치, 예를 들면 위해 '^ $'를 사용해야합니다, 검색 문자열을 포함하는 쿼리를 일치 : '^ 정규식. * $ '.)

  3. from https://stackoverflow.com/questions/18780194/how-to-regex-in-a-mysql-query by cc-by-sa and MIT license