PHP выбрать из MySQL, где заголовок начинается с A (и только A) - PullRequest
23 голосов
/ 15 января 2010

Я уверен, что это очень просто, но, похоже, не могу понять ... Мне нужно выбрать все заголовки из моей базы данных, где заголовок начинается с A, или B, или C и т. Д. Вот что я мы уже пробовали:

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

но ничего не возвращает .. Может ли кто-нибудь помочь мне с этим?

Приветствия

Ответы [ 5 ]

52 голосов
/ 15 января 2010

Для заголовков, начинающихся с 'A', используйте % после A

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE '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, что в этом месте может находиться что угодно.

Чтобы иметь цифры в качестве первой буквы, проверьте Ответ Марка.

7 голосов
/ 15 января 2010

Существующие ответы верны для начала с A:

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

Для начала с любого номера вы можете использовать оператор REGEXP:

SELECT * FROM weblinks WHERE catid = 4 AND title REGEXP '^[0-9]'
7 голосов
/ 15 января 2010

Подстановочными знаками для LIKE являются % и _, где% соответствует 0 или более символам, а _ соответствует ровно одному символу.

2 голосов
/ 15 января 2010

попробовать:

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

и т. Д. И т. П.

1 голос
/ 15 января 2010

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

% говорит «что угодно», так что это «А», тогда что угодно. Работает только с оператором сравнения LIKE.

...