Мне нужно выполнить запрос к базе данных Mysql, который извлекает последние 10 строк из таблицы, в которой нет столбца индекса. Мне удалось создать запрос-

        SET @row_number:=0;
        select activity from (
            SELECT @row_number:= @row_number+ 1 AS rowNumber, activity 
            FROM activities a ) as myT 
        where  myT.rowNumber > (select count(activity) from activities)- 10

Но мне нужно запустить его через С#. И с помощью MysqlCommand я не могу создать параметр @row_number. Использование command.Parameters.AddWithValue не помогает потому что параметр должен быть назначен при выполнении запроса. (использование Parameters.AddWithValue приводит к следующей ошибке = "..синтаксис для использования рядом с ':= 1 + 1...").

Спасибо.

0
Nadav Nagel 12 Фев 2015 в 19:42
Я написал ошибку - я не хочу получать первые 10 - я хочу получать последние 10
 – 
Nadav Nagel
12 Фев 2015 в 22:04

2 ответа

Я думаю, что вам нужно предложение LIMIT:

select activity from activities 
    LIMIT 10

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

0
DrewJordan 12 Фев 2015 в 21:00

Возможно, я неправильно понимаю ваш вопрос, но если вы пытаетесь получить только первые 10 записей, почему бы не использовать это:

ВЫБЕРИТЕ ТОП-10 [название столбца] ИЗ [Таблица]

Это возвращает первые 10 результатов в таблице базы данных.

Или в С# вы можете установить переменную

Интервал номер_строки = 0; затем используйте команду.Parameter.add("@rowNumber", rowNumber);

Это может сработать.

Надеюсь это поможет.

0
Joseph Stephen 12 Фев 2015 в 21:06
Я хочу выбрать последние 10 строк. У меня нет столбца id/pk, я не могу сделать заказ
 – 
Nadav Nagel
12 Фев 2015 в 21:59
Оп, извините, я не уловил часть "последние 10" = p
 – 
Joseph Stephen
13 Фев 2015 в 20:17
Могу я спросить, почему в этой таблице нет столбца PK или ID? например столбец SequenceNumber? Тебе бы стало немного легче.
 – 
Joseph Stephen
13 Фев 2015 в 21:06
Это своего рода тест, который мне нужно сделать. Чтобы найти способ выбрать 10 последних строк без использования столбца pk/id
 – 
Nadav Nagel
14 Фев 2015 в 20:50