SELECT *
FROM `thread`
WHERE forumid NOT IN (1,2,3) AND IF(LEFT(title, 1) = '#', 1, 0)
ORDER BY title ASC
#で始まるものは何かを選択するこのクエリがあります。私がしたいことは、#が数値と特殊文字を探す値として与えられた場合です。または普通の手紙ではないもの。MySQL - 数字または特殊文字で始まる場合
どうすればよいですか?
SELECT *
FROM `thread`
WHERE forumid NOT IN (1,2,3) AND IF(LEFT(title, 1) = '#', 1, 0)
ORDER BY title ASC
#で始まるものは何かを選択するこのクエリがあります。私がしたいことは、#が数値と特殊文字を探す値として与えられた場合です。または普通の手紙ではないもの。MySQL - 数字または特殊文字で始まる場合
どうすればよいですか?
あなたはその "タイトル" REGEXPを使用し、文字で始まらないすべての行を選択したい場合:
SELECT *
FROM thread
WHERE forumid NOT IN (1,2,3)
AND title NOT REGEXP '^[[:alpha:]]'
ORDER BY title ASC
REGEXP in MySQL's manualについて詳しくは、こちらをご覧ください。
それはあなたがcharとしてそれをキャストしようとすることができることが可能です。
CAST('#' AS CHAR)
が、それが起動するための記号だから、これはシャープ(別名シャープ記号:))のために働く場合、私は知りません( - それは、ゼロまたはベースの一つだ場合のドキュメント状態しない可能性1)文字列の開始時に、あなたがしたい場合は、0をチェック - MySQLの
実際のMySQL初心者です。 NOT IN句は、文脈に入れるだけで私の頭を揺るがすものです。 もう少し説明してください:) –
「AND IF(LEFT(タイトル、1)= CAST( '#」、 'AS CHAR)、1、0) 'と言ったように、私は言ったように、私はそれが働くかどうかわからない/ octothorpes – Jason
それは動作しません。それは何も返さない。 –
SELECT t.*
FROM `thread` t
WHERE t.forumid NOT IN (1,2,3)
AND INSTR(t.title, '#') = 0
ORDER BY t.title
与えられた文字列の位置を取得するにはINSTRを使用中のコメント。
regexpマニュアルを動作させるURLはhttps://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexpです – dsomnus