#php #mysql #sql #select #sql-like
#php #mysql #sql #выберите #sql-подобный
Вопрос:
Моя таблица заполнена в общей сложности 40 000 строк, по крайней мере, более 2000 строк, начинающихся с буквы A
.
Теперь мой SELECT
запрос возвращает некоторые результаты, когда я использую
$selectGames = mysql_query("SELECT * FROM Games WHERE GameName LIKE '%A'");
Но когда я использую :
$selectGames = mysql_query("SELECT * FROM Games WHERE GameName LIKE 'A%'");
возвращается всего 0 строк. Почему это?
Комментарии:
1. вы вставляли% like названия игр вручную из phpmyadmin или с помощью mysql_? потому что, если вручную, вам нужно проверить, есть ли у этих значений пробелы в начале, это произошло со мной: D:/
2. Ах, я понял, вся таблица действительно вставлена mysql, и она вставила пустое пространство в конце имен, но не спереди, но это устраняет проблему
3. Gald, это сработало для вас 🙂
Ответ №1:
%A
означает «где конец строки — буква А». A%
является ли противоположным «строка, НАЧИНАЮЩАЯСЯ с буквы А»?
%A A%
APPLE N Y
ABBA Y Y
GOUDA Y N
Это совершенно разные совпадения, поэтому ваши два запроса НЕ эквивалентны.
Кроме того, убедитесь, что параметры сортировки вашей таблицы настроены на совпадение без учета регистра. Если это с учетом регистра, то a
и A
будет рассматриваться по-другому.
редактировать: кроме того, помните, что пробелы имеют значение:
mysql> select 'gouda ' like '%a';
^---note the space here
--------------------
| 'gouda ' like '%a' |
--------------------
| 0 |
--------------------
1 row in set (0.00 sec)
Комментарии:
1. Прекрасные фрукты, прекрасная музыка и прекрасный сыр 😉
2. да, я знаю, что это не эквивалентно, но почему A% не работает, потому что это то, что мне нужно. я попробовал%A в качестве теста, и это сработало, но мне нужно наоборот.
3. ну, сколько у вас записей, которые на самом деле ЗАКАНЧИВАЮТСЯ буквой
A
? обратите внимание, что такие вещи, какabba[space]
не будут совпадать, потому что эта строка заканчивается пробелом, а неa
4. я также попробовал это, сделав все результаты прописными, а также A в запросе, что также привело к 0 результатам
5. я создаю страницу, на которой вы можете выбрать букву из алфавита, которая будет брать все из базы данных, которая начинается с этой буквы