ここで簡単なものが欠けているような気がしますが...
mySQLテーブル(users.fName)に次のデータがある場合:
--------------
| Jason M. |
--------------
| Eric |
--------------
| Tim S |
--------------
| Peggy Sue |
--------------
そして、私は最終的に:
--------------
| Jason |
--------------
| Eric |
--------------
| Tim |
--------------
| Peggy Sue |
--------------
私は私が排除しなければならないと思います。Jason M.(これで十分簡単にできますUPDATE users SET fName = REPLACE(fName, ".", "");
)の後ですが、どうすればMとSを削除して、Sueを残すことができますか?
SUBSTRING_INDEX
フィールドの一部を取得できることはわかってSELECT SUBSTRING_INDEX(fName, ' ', -1), LENGTH(SUBSTRING_INDEX(fName, ' ', -1)) FROM users
います。文字列の2番目の部分の長さを取得するようなものを使用できますが、フィールドを文字列の最初の部分に更新する方法がわかりません。2番目の部分のみです。 1文字の長さ。
アップデート
回答フォーム@Danは、彼のクエリに1つの変更を加えると、必要なものを取得しました。更新されたクエリは次のとおりです。
SELECT `fName`, SUBSTRING_INDEX(`fName`, ' ', -1) AS MiddleInitial
FROM `users`
WHERE TRIM(`fName`) LIKE '%.'
AND length(`fName`)> 4
OR length(SUBSTRING_INDEX(`fName`, ' ', -1)) = 1;
最後AND
は、OR
すべてが機能するようになります。