電話番号のフィールドを持つテーブルがあります。左から 3 番目の数字の関数で「地区名」フィールドを更新する必要があります。
UPDATE mytable
SET districtname =
CASE
WHEN the3rdnumberfromleft = '8' THEN 'Mycountryname'
ELSE ''
END
その特定の位置の数字を読み取る条件を設定するにはどうすればよいですか?
電話番号のフィールドを持つテーブルがあります。左から 3 番目の数字の関数で「地区名」フィールドを更新する必要があります。
UPDATE mytable
SET districtname =
CASE
WHEN the3rdnumberfromleft = '8' THEN 'Mycountryname'
ELSE ''
END
その特定の位置の数字を読み取る条件を設定するにはどうすればよいですか?
LIKE
MySqlでワイルドカード文字を使用できます
UPDATE mytable
SET districtname = 'yourDesiredName'
WHERE telephone LIKE '__8%'
説明:
__8%
8
左から3番目の番号を持つすべての電話番号と一致します。
意味が最初に(それぞれに1つずつ)任意の文字に一致する_
前に2つの(アンダースコア)文字があることに注意してください8
two
そして来る8
のでそれはにのみ一致します8
そして、その後、%
どの文字とも一致するという意味になります。
詳細については、このリンクを参照してください
あなたの質問を正しく読んだ場合、テーブル内の行の一部のみを更新しようとしています。それが本当なら、これを試してください。
UPDATE mytable
SET districtname = 'Mycountryname'
WHERE SUBSTRING(LTRIM(telephone),3,1) = '8'
あなたが述べたように、これは8の行のみを選択します。電話番号の前にスペースがある可能性がある状況に対処するために、LTRIM を投入しました。すべての電話番号が左詰めであることが確実な場合は、その必要はありません。
電話番号が整数フィールドに格納されている場合でも、MySQL はユーザーが使用する整数を文字列であるかのように暗黙的に変換するため、これは機能します。