выбор столбцов на основе значения в одном столбце

#mysql #select

#mysql #выберите

Вопрос:

Я полный новичок, когда дело доходит до MySQL. Я провел некоторый поиск здесь и в других местах, но не смог разработать что-то, что, на мой взгляд, очень простое.

У меня есть почтовая программа, которая импортирует поля / столбцы из базы данных MySQL для массовых электронных писем.

Я хочу импортировать информацию только для пользователей, которые имеют определенное значение в определенном столбце таблицы.

Для импорта всех пользователей я обычно использую:

 SELECT firstname, email FROM users
  

Я попытался внести изменения в:

 SELECT firstname, email FROM users WHERE group = "test"
  

где group — это имя столбца, с которым я пытаюсь протестировать, а test — значение, которое я ищу. Я думаю, что это может быть близко, но это приводит к ошибке.

Кто-нибудь может меня просветить?

Комментарии:

1. Что ж… То, что вы описали, должно сработать. Какую ошибку вы получаете? Является ли столбец group в users таблице? Имеет ли он тот же тип данных (CHAR), что и "test" ?

2. В следующий раз опубликуйте сообщение об ошибке в своем вопросе

3. Осторожно используйте двойные кавычки для строковых литералов. Спецификация ANSI использует двойные кавычки для идентификаторов. dev.mysql.com/doc/refman/5.1/en /…

4. Спасибо за информацию. Конкретного сообщения об ошибке не было, вероятно, потому, что программное обеспечение, которое я использую для массовых электронных писем, не поддерживает его.

Ответ №1:

Я думаю, ваша проблема в том, что group является ключевым словом в MySQL. Вы можете использовать

 SELECT firstname, email FROM users WHERE `group` = "test"
  

Используйте обратные галочки, чтобы заключать имена полей в кавычки.

Комментарии:

1. Согласен; в идеале, просто используйте обратные метки, чтобы разграничить все имена полей, как само собой разумеющееся. Вы сделаете их более различимыми в своих запросах и избежите когда-либо подобных ошибок, некоторые из которых теоретически могут не вызывать синтаксическую ошибку .