Выполнение интерактивных запросов в MySQL (в основном из графического интерфейса) - PullRequest
1 голос
/ 25 ноября 2008

Я в основном использую инструменты MySQL GUI. Это позволяет мне легко видеть результаты в таблице, а также быстро редактировать и добавлять в закладки часто выполняемые запросы. Это удовлетворяет мои потребности намного лучше, чем командная строка.

Я помню, когда я делал это на БД Oracle несколько лет назад, я мог помещать переменные в сам запрос, так что при выполнении запроса мне было предложено указать переменную.

, например

select email from users where login = [VAR]

И когда вы запускаете запрос, система запрашивает VAR, и вы можете ввести john_smith14, и он выполняет запрос. Это действительно полезно для специальных запросов, которые вы часто выполняете.

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

Ответы [ 3 ]

1 голос
/ 25 ноября 2008

Хорошо, другое решение, поскольку кажется, что Билл прав (прочитайте комментарии к моему другому ответу).

На вкладке Params в правом нижнем углу вы можете щелкнуть правой кнопкой мыши папку «Local Params» и добавить новый параметр. Дайте ему имя, например: «myTest». Изначально ему присваивается значение NULL. Дважды щелкните NULL и введите новое значение.

Теперь вы можете получить к нему доступ в своем запросе следующим образом:

SELECT email FROM users WHERE login = :myTest;

Чтобы это сохранялось между сессиями (открытие и закрытие браузера запросов), просто сделайте его глобальным параметром вместо локального параметра. Это работает, даже если вы перезапустите сервер MySQL.

0 голосов
/ 25 ноября 2008

Использование подготовленных заявлений может быть полезно в этом случае.

PREPARE query1 FROM select email from users where login = ?

затем выполните его с вашей переменной:

SET @a = 'john';
EXECUTE query1 USING @a;

Это утверждение будет присутствовать в течение всего сеанса и пропадет при отключении.

Это может показаться чрезмерной нагрузкой, но полезно при многократном использовании одного и того же запроса с немного разными значениями.

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

0 голосов
/ 25 ноября 2008

Я не уверен, есть ли способ заставить инструменты графического интерфейса запрашивать у вас значение, но вы, безусловно, можете использовать переменные в MySQL.

SET @myVar='john_smith14';
SELECT email FROM users WHERE login = @myVar;

Это может даже подойти вам лучше, так как вам не нужно каждый раз вводить значение переменной ..?

...