SQL like子クエリ
4391 ワード
like子クエリ
文字マッチング:%(パーセント)任意の文字の長さ(0とすることができる)の文字 _(下横線)は、任意の単一文字eg:a%bはaで始まり、bで終わる任意の長さの文字を表します。 常用する3つの文字列の切り取り関数: substr(column,1,n) left(column,n) right(column,n)
文字マッチング:
str='abcdefg'
substr(str,1,3): 'bcd'
left(str,2): 'ab'
right(str,2) : 'fg'
以下に都市マッチングの例を示します。CREATE TABLE `job_provinces` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)CHARSET=utf8
テーブルプロヴィンス構造CREATE TABLE `provinces` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) CHARSET=utf8
jobuprovinceからprovinceに対応する番号が1の省のコード値を探しています。SELECT a.code from job_provinces a WHERE LEFT(a.name,2) LIKE
LEFT((SELECT name from provinces WHERE id = 1),2)
保存プロセスを定義してデータの変更を完了することもできます。BEGIN
declare i int;
set i=1;
while i<35 do
UPDATE univs
set pid = (SELECT a.code from job_provinces a WHERE LEFT(a.name,2) LIKE
LEFT((SELECT name from provinces WHERE id = i),2) )
WHERE pid = i;
set i=i+1;
end while;
END