2016-11-04 8 views
0

그래서 이전 사용자 이름과 같은 데이터베이스 열이 있습니다.PHP mysql 데이터베이스 문자열에 문자열이 포함되어 있는지 확인하십시오.

정보가있는 행의 모습입니다.

bill, joe, ryan 

내가 뭘 하려는지 궁금해 한 행을 확인하고 조가 들어 있는지 확인하십시오. 나는 그것을 수행하는 방법에 대한 하나 개의 가능한 이론을 가지고 있지만 내가 두려워하는 것은 과거의 이름이입니다 누군가를 말할 수 있습니다 :

billjoe 

그것 때문에 내가 그것을 무시 할 것입니다 거기에 그 법안의 데이터베이스에있는 생각을 두려워 임 정확한 청구서가 아니라면.

예를 들어 쉼표로 구분 된 1 개의 문자열에 3 개의 이름이있을 수 있습니다. 그것은이처럼 수행하는 방법에 대한

내 이론 :

$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames"); 
$stmt->execute(array(':pastusernames' => "%bill%")); 

하지만 그조차 완전히 잘못 될 수있다. 어쨌든 이것을 올바로 수행 할 수 있습니까?

+5

데이터베이스를 표준화하면 더 쉬울 수도 있습니다. 'user_id'와'name' 컬럼을 가진'past_usernames' 테이블을 만듭니다. 그런 다음 해당 테이블에서 정확한 사용자 이름과 user_id를 검색 할 수 있습니다. – aynber

답변

0

PHP로 작성하는 방법을 잘 모르겠습니다. 하지만 SQL은 다음과 같이한다 : (가) , 당신이

+0

'+'는 점으로 연결하면 안됩니까? 나는 "수학"이 여기에서 행해지는 것을 의심한다. 또는,이 일부 전문가 SQL은 나도 몰라? * lol * –

+0

@ Fred-ii- 나는 sql 코드를 작성한다고 말했다. PHP로 변환하는 방법을 모릅니다. –

0

내가 확실하지 오전 경기 모든 일뿐 아니라 일부 확인하지만

에 대한 작업을 할 수있다 쿼리 아래에있을 수 있습니다 추가

SELECT * 
FROM users 
WHERE ', ' + pastusernames + ',' LIKE '%, bill,%' 

$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames"); 
$stmt->execute(array(':pastusernames' => "bill")); 
관련 문제