Мне было интересно, возможно ли в хранимой функции или хранимой процедуре mysql составить запрос mysql как строковую переменную, которую вы можете выполнить позже? У меня есть хранимая функция get_district_part ((district_id INT,county_id INT,city_id INT,zip_id INT)) RETURNS INT
, которая ссылается на таблицу:
CREATE TABLE IF NOT EXISTS `modx`.covereage_district_part(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
districtID INT NOT NULL,
countyID INT,
cityID INT,
zipID INT,
FOREIGN KEY (districtID) REFERENCES `modx`.coverage_district (id),
FOREIGN KEY (countyID) REFERENCES `modx`.coverage_county (id),
FOREIGN KEY (cityID) REFERENCES `modx`.coverage_city (id),
FOREIGN KEY (zipID) REFERENCES `modx`.coverage_zip (id)
);
get_distrct_part
предназначен для возврата идентификатора строк, вычисляющих district_id
и некоторую комбинацию county_id
, city_id
и zip_id
. Дело в том, что я хочу вернуть идентификатор строки, соответствующей точной комбинации идентификаторов, а не идентификаторов строк, содержащих какие-либо из этих идей. Для этого я хочу сегментировать оператор запроса, чтобы он был построен с учетом предоставленных идентификаторов. Я пытаюсь не сопоставлять нули, если могу.
Я понимаю, что это можно легко сделать с помощью PHP, но я хотел бы сделать это как хранимый процесс mysql, если я могу по какой-либо другой причине, тогда все другие функции для этого являются хранимыми процессами.