2017-03-10 1 views
0

나머지 API URL에서 58988e75c918f5bd5804afd6과 같은 사용자 ID를 수신하고 있습니다.LIKE를 포함하거나 포함하지 않는 정확히 일치하는 레코드를 검색하는 SQL 쿼리

데이터베이스의 이름 필드에 저장되는 이름은 58988e75c918f5bd5804afd6 John입니다.

이 레코드를 가져 오기 위해 나의 현재 SQL 쿼리는 다음과 같습니다 현재 SQL 쿼리와

$sql = 'SELECT * FROM users WHERE name LIKE :term'; 
$result = db_query($sql, array(':term' => db_like($userid))); 
$existingUser = $result->fetchObject(); 

, 나는이 부분 사용자 ID (58988e75c918f5bd5804)를 공급하는 경우에도, 그것을하지 않습니다 존 행을 가져올 것으로 보인다 나는 일어날 것을 기대합니다. John을 포함하는 사용자 ID와 정확히 일치하도록 쿼리를 수정하는 방법은 무엇입니까?

예상 결과 : 사용자 ID가 정확히 일치하지 않아 검색 할 레코드가 없습니다.

업데이트 : 레코드를 가져온 다음 부분 문자열을 대체하여 Drupal 테이블의 레코드를 업데이트합니다.

주 : 예상 된 결과를 얻기 위해 SQL 쿼리를 수정 자유롭게, neednt 사용 LIKE

+1

선택을 실행 중입니다. 어떻게 데이터를 변경할 수 있습니까? – e4c5

+0

질문에 대한 대답이 – neelmeg

+0

일까요? 어떤 결과가 예상됩니까? –

답변

1

사용하여 같은 기간에 공백이 : Include space in mysql like search

$sql = 'SELECT * FROM users WHERE name LIKE ":term "'; 
$result = db_query($sql, array(':term' => db_like($userid))); 
$existingUser = $result->fetchObject(); 

더 나은 PHP와 문자열 크기를 확인 mysql like를 수행한다. 동일한 암호화 스타일을 사용함에 따라 같은 수의 문자가 암호화됩니다.

+0

공간을 확인하는 것이 좋습니다. – neelmeg

+0

하지만 공간 뒤에 '%'가 필요하지 않습니까? –

관련 문제