mysql에서 간단한 키워드 비교 쿼리를 작성하려고했지만 어떤 이유로 모든 숫자 키워드가 모든 숫자 검색 용어와 일치하지 않습니다.mysql 문자열과 숫자가 동일하지 않음
제품 표, 키워드 테이블 및 조인 테이블이 있습니다. 일을 더 간단하게하기 위해 제품 ID 당 키워드 문자열의 간단한 목록을 제공하는 조인을 수행하는보기를 사용하고 있습니다. 1 제품에는 특히 "John", "Deere", "8000", "Midroller"라는 4 개의 키워드가 있으며이 키워드는보기 및 결합시 올바르게 표시됩니다.
"8000"키워드의 경우 (keyword = "8000") 절대로 사실이 아닙니다.
예
SELECT a.id, kw.keyword AS keyword, (kw.keyword = 'John' OR
kw.keyword = 'Deere' OR
kw.keyword = "8000" OR
kw.keyword = 'Midroller') AS matched
FROM `kc5n2_product` AS a
INNER JOIN `product_keywords` AS kw ON a.id = kw.product
WHERE a.id =119
반환
id keyword matches 119 8000 0 119 John 1 119 Deere 1 119 Midroller 1
나는 이것 좀 했어 : MySql: Compare 2 strings which are numbers? 하지만 정말 도움이되지 않았다.
나는 또한 MySQL Query doesn't seem to be outputting expectations을 발견했으나 숫자가 아닌 문자열로 비교하려고 노력하고 있습니다.
심지어 문자열이 전혀 도움이되지 않았다 모두로 해석 mysql을 강제하려고SELECT a.id, kw.keyword AS keyword, (CAST(kw.keyword as Char(4)) = CAST("8000" as Char(4))) AS matched
을 시도.
은 내가
kw.keyword LIKE "%8000%"
를 사용하지만 나는 매우 제한적인 검색을 유지하려는 수있는이 단계에서 같은 경우 내가 좋아하는을 피하기 위해 원합니다 경우가 검색어와 일치하는 것을 발견했다.
분명히 내가 잘못하고있는 것이 있습니까?
'8000'을 (를) 포함하는 행의 앞/뒤에 공백이있을 수 있습니다. – peterm
맞습니다! 여분의 공간은 phpmyadmin에 표시되지 않았으므로 확인하지도 않았습니다. 그것은 매우 기본적인 것이 었습니다. – DigitalArchitect