アプリ版:「スタンプのみでお礼する」機能のリリースについて

SELECTした値を先頭一致するか比較したいのですが、
LIKE の右辺に文字列でなく、カラムを指定する事は無理でしょうか?

LIKE '%'+カラム名
だとエラーになってしまいました・・

A 回答 (2件)

>そうです。

先頭一致です。

「列名 LIKE '%abc'」という指定は、「後方一致」と呼びます。「先頭一致」という表現では、「列名 LIKE 'abc%'」という前方一致と誤解されます。

>カラム名A LIKE '%'+カラム名B

文字連結を「+」で行うというデタラメな構文は、どこで覚えたのでしょうか?
「+」で文字連結というのは、SQL Serverなどの独自仕様です。

標準SQLや主要なRDBMSでは、「||」を使います。MySQLもANSI構文モードでは同様ですが、MySQL構文だと、concat関数を使う必要があります。

「カラム名A LIKE CONCAT('%',カラム名B)」といった指定になります。ただし、このような指定をすると、インデクスを有効利用できず、母体件数に比例して性能劣化します。
    • good
    • 1
この回答へのお礼

大変、明快なご回答ありがとうございます。助かりました。
CONCAT関数はたまに使った事があったのですが、盲点でした。
又、今後、困ったらSQL標準も調べてみますね。

お礼日時:2008/07/07 11:39

先頭一致させたいのですよね?



カラム名 LIKE '一致したい文字列%'

ってことじゃないのですか?

この回答への補足

そうです。先頭一致です。ただ、
カラム名A LIKE '%'+カラム名B
としたいのです。やはり無理でしょうか?

説明が下手ですみません。

補足日時:2008/07/04 23:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A