사용자 입력으로 검색되는 데이터베이스에 레코드가 있는데 처음에는 올바른 레코드를 찾는 데 충분했습니다.정규식을 사용하여 MySQL 쿼리로 레코드를 반환하려면 어떻게해야합니까?
"SELECT id FROM plants WHERE Flower LIKE '%" . $sanitizedUserInput . "%'"
이 '단순히 전체 단어 모두 잘 작동 좋은,하지만 일이 자신의 Flower
필드에 순서대로 문자'레드 '와'레드 '지고 있다고 식물을 찾고, 같은 일이 시작하고,되지 않았습니다 빨간'.
나는 사용자 입력의 양쪽면에 공백을 넣기를 제안했지만 단어가 필드의 첫 단어이거나 마지막 단어가 실패하는 것으로 알고 있습니다. 나는 나 자신에게 내가 정규식을 사용해야한다고 생각했다. 단어 경계선이있는 단어를 검색합니다.
불행히도, 전 데이터베이스에서 정규식을 사용한 적이 없습니다. 정규 표현식으로 DB를 검색하는 쿼리를 어떻게 작성합니까? 다행히도 다음과 같이 쉽습니다.
"SELECT id FROM plants WHERE Flower REGEX `/\b" . $sanitizedUserInput . " \b/`"
.. – alex
고마워요, 차드. +1 – alex
정말요? 나는 전반적인 mysql 문서의 꽤 큰 팬이다. 검색 기능은 훌륭하지 않지만 대부분 올바른 페이지를 찾으면 대개 대부분의 페이지가 잘 작성됩니다. –