web-dev-qa-db-ja.com

PHPは、タイトルがA(およびAのみ)で始まるmysqlから選択します

これは非常に簡単だと思いますが、理解できないようです。データベースから、タイトルがA、B、Cなどで始まるすべてのタイトルを選択する必要があります。はるか:

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A'

しかし、何も返しません。誰かがこれを手伝ってくれませんか?

乾杯

23
SoulieBaby

「A」で始まるタイトルの場合、Aの後に%を使用します

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%'

「A」の文字が含まれるタイトルの場合、Aの両側に%を使用します

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE '%A%'

文字「A」で終わるタイトルの場合、Aの前に%を使用します

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE '%A'

基本的に%はワイルドカードです。これは、場所に何でも存在できることをMySQLに通知します。

数字を最初の文字とする場合は、 Markの答えを確認してください。

52
Tyler Carter

既存の回答は、Aで始まるのが正解です。

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%'

任意の数値で始めるには、REGEXP演算子を使用できます。

SELECT * FROM weblinks WHERE catid = 4 AND title REGEXP '^[0-9]'
7
Mark Byers

LIKEのワイルドカードは%および_、ここで%は0文字以上に一致し、_は1文字に一致します。

試してください:

SELECT * FROM weblinks WHERE catid = 4 AND ((title like 'A%') OR (title like 'B%'))

等々

2
catsby

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%'

%は「何でも」を示すので、「A」で何でもいい。 LIKE比較演算子でのみ機能します。

1
zneak