[SQL] MySQL의 쿼리 문자열이 포함되어
SQLMySQL의 쿼리 문자열이 포함되어
나는 검사가 특정 열의 값 (문자열 $ 건초 더미)이이 같은 특정 데이터 (문자열 $ 바늘)를 포함하는 경우 것이 MySQL을 사용하여 쿼리를 만들 수있는 방법을 알아 내기 위해 노력했습니다 :
mysql_query("
SELECT *
FROM `table`
WHERE `column`.contains('{$needle}')
");
PHP에서 함수는 어쩌면, SUBSTR ($ 건초 더미, $ 바늘)라고합니다 :
WHERE substr(`column`, '{$needle}')=1
해결법
-
==============================
1.실제로 매우 간단합니다 :
실제로 매우 간단합니다 :
mysql_query(" SELECT * FROM `table` WHERE `column` LIKE '%{$needle}%' ");
이 %이 설정 한 문자 (없음, 하나 또는 다수)을위한 와일드 카드입니다. 이 데이터베이스는 전체 텍스트 인덱스를 사용해야합니다 성장 그렇다면 매우 큰 데이터 세트에 느린 얻을 수 있습니다를 수행합니다.
-
==============================
2.사용하다:
사용하다:
SELECT * FROM `table` WHERE INSTR(`column`, '{$needle}') > 0
참고:
-
==============================
3.
WHERE `column` LIKE '%$needle%'
-
==============================
4.광산은 MySQL의에서 찾은 사용하고 있습니다 :
광산은 MySQL의에서 찾은 사용하고 있습니다 :
이 기능은 멀티 바이트 안전하고, 대소 문자를 구분 적어도 하나 개의 인수가 바이너리 문자열 인 경우에만입니다.
귀하의 경우 :
mysql_query(" SELECT * FROM `table` WHERE LOCATE('{$needle}','column') > 0 ");
-
==============================
5.@WoLpH의 대답에 추가.
@WoLpH의 대답에 추가.
사용하는 경우 LIKE 당신은 또한 어느 방향으로 문자열 일치를 제한 할 수있는 능력을 가지고 키워드. 예를 들면 :
당신은 당신의 $ 바늘로 시작하는 문자열을 찾고있는 경우 :
... WHERE column LIKE '{$needle}%'
당신은 그 $ 바늘 끝 문자열을 찾고있는 경우 :
... WHERE column LIKE '%{$needle}'
-
==============================
6.이 위험하다주의 :
이 위험하다주의 :
WHERE `column` LIKE '%{$needle}%'
첫째 수행
$needle = mysql_real_escape_string($needle);
그래서 가능한 공격을 방지 할 수 있습니다.
-
==============================
7.당신은 아마 FIND_IN_SET 기능을 찾고 있습니다 :
당신은 아마 FIND_IN_SET 기능을 찾고 있습니다 :
Where find_in_set($needle,'column') > 0
이 기능은 PHP에서와 in_array 함수와 같은 역할을
from https://stackoverflow.com/questions/2602252/mysql-query-string-contains by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 오라클 SQL Developer에서 변수를 사용합니까? (0) | 2020.03.26 |
---|---|
[SQL] 최대 절전 모드 기준 API에서 SQL을 얻는 방법 (*하지 * 로깅) (0) | 2020.03.26 |
[SQL] 어떻게 PDO 데이터베이스 쿼리를 디버깅하는 방법? (0) | 2020.03.26 |
[SQL] SQL Server 2005는 어떻게 고유 제한 조건을 만들기? (0) | 2020.03.26 |
[SQL] 이노 검색 전체 텍스트 (0) | 2020.03.26 |