MySQL SQL Синтаксис Проблема
Я использую простейшее предложение SQL для получения идентификатора пользователя,
String query = "SELECT * FROM `login` WHERE `user_id` LIKE `userid` ";
здесь user_id - это столбец, userid - это входная переменная, а не NULL,
при отладке система всегда сообщает о следующих ошибках,
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'userid' in 'where clause'
Я могу напечатать идентификатор пользователя как Аллан, идентификатор пользователя - это тип String, а текущее значение - "Allan". Почему система не может сравнить столбец и входную переменную?
Заранее большое спасибо!
Розмари
3 ответа
Вы должны поместить свое строковое значение в кавычки, а не в галочки. Помещая его в тики, вы говорите MySQL, что это идентификатор столбца, а не строковое значение, как вы хотите
String query = "SELECT * FROM `login` WHERE `user_id` LIKE 'userid' ";
Ответ Джона Конде уже исправляет ошибку, но у меня есть небольшое замечание.
Похоже, вы хотите выбрать всю информацию для входа в систему от пользователей с идентификатором user_id, который совпадает с переменной userid в вашем коде Java. Для этого вы можете использовать:
String userid = "Rosemary";
String query = "SELECT * FROM `login` WHERE `user_id` LIKE '" + userid + "' ";
Фактический запрос тогда становится:
SELECT * FROM `login` WHERE `user_id` LIKE 'Rosemary'
Для входной переменной используйте '', а не ``. Я считаю, что SQL интерпретирует их как часть системы, а не как цитаты.