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