2017-04-14 10 views
0

私はfullname列のテーブルを持っています。私は彼の姓を介して人を見つけるためのクエリを作成するが、彼の姓はフルネームの列にあります。mysqlのフルネームから姓を抽出するにはどうしたらいいですか?

+0

試してください: 'SUBSTRING_INDEX(フルネーム、 ""、-1)=「lastname''(https://dev.mysql.com/doc/refman/5.5/en/ string-functions.html#function_substring-index)姓と名を別々のフィールドに格納することを検討してください。 –

+0

いくつかの例を表示できますか?たとえば、「フルネーム」が「ジョンQ.パブリック」、または「パブリック、ジョンQ.」などのように見えるかどうかわからない限り、何をすべきかを知るのは難しいです。 –

答えて

1

あなたの名前があなたの質問と一致した人を誤って返信しても問題はありませんか?

単純なクエリは次のようになります。

SELECT * 
FROM TABLE 
WHERE fullname LIKE '%insertlastname%' 

あなたが最後のスペースの後に名前と姓を定義したい場合は、次の二つの次善の答えが、少なくともいくつかの答え

SELECT substring_index(fullname, ' ', -1) as lastname 
FROM TABLE 
WHERE lastname='insertlastname' 

を。

0

は、クエリによって取得したい場合は、これを使用することができ、ここでのコードを入力します。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` , ' ', 2),' ',1) AS b, 
SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` , ' ', -1),' ',2) AS c FROM `users` WHERE `userid`='1' 

をしかし、あなたはまた、最後の名前を取得するためにPHPで試すことができます。爆発関数を使って姓を取得するだけです。

EXM:

$full_name = "row moin"; 
$pieces = explode(" ", $fullname); 
echo $first_name = $pieces[0]; // row 
echo $last_name = $pieces[1]; // moin 
関連する問題