2011-01-18 3 views
0

У меня есть функция MYSQL, называемая spGetVideosByLocation. В настоящее время я называю это так:Динамическая сортировка хранимой процедуры/функции MYSQL

CALL spGetVideosByLocation(location); 

В основном это вызывает запрос похож на это:

SELECT * FROM Videos WHERE LocationId = location; 

Мой вопрос, есть ли способ определить ORDER BY, когда я вызвать функцию? Как я получаю это:

CALL spGetVideosByLocation(location, "tableName", DESC); 

Для запроса этого:

SELECT * FROM Videos WHERE LocationId = location ORDER BY tableName DESC; 
+0

я думаю, что вы не можете сделать выбор *, выбрать то, что вы хотите, чтобы выбрать, его очень просто, что вам нужно смотреть на пример - здесь HTTP: //www.kbedell.com/2009/03/02/a-simple-example-of-a-mysql-stored-procedure-that-uses-a-cursor/ –

ответ

0

Какой язык программирования вы используете? Предполагая, что вы используете PHP, вот код, который я хотел бы использовать:

function spGetVideosByLocation($locationid, $order, $orderby) 
{ 
    $sql = "SELECT * FROM Videos WHERE LocationId = '$locationid' ORDER BY $order $orderby"; 
    $result = mysql_query($sql) or die(mysql_error()); 
    //do whatever you need to to get results 
} 
+0

Я думаю, что он ссылается на [хранимую процедуру MySQL] (http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html). – dkarp

+0

oh мой плохой. Я надеюсь, что это все еще помогает – blake305

+0

Блейк, это было бы слишком легко! :-) Я использую фреймворк php/zend, но я хочу назвать его из хранимой процедуры/функции MYSQL. , , – TuK