2013-06-15 5 views
4

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

Предположим, у меня есть поля, названные как «ProductID» и «PRODUCTNAME» и в таблице ниже записей

1. milk 
2. pizza 
3. boll 

и у меня есть еще один список в массив, таких как

boll 
pizza 
milk 

теперь я хочу, чтобы отсортировать список таблицы на основе значения массива и получить ниже список»

3. boll 
2. pizza 
1. mike 

Есть ли какой-либо SQl, который может делать то, что мне нужно? или мне нужно сделать это вручную с помощью кодирования.

Благодаря

ответ

5

Вы можете это сделать, если с помощью следующего бита псевдокоде из кода приложения

sqlexecuter.run(
"CREATE TEMPORARY TABLE ORDERED_ENTRIES(
     ORDER_ENTRY NOT NULL AUTO_INCREMENT PRIMARY KEY, 
     PRODUCT_NAME varchar(255) --Put the same amount size as your other table 
)") 

Затем в коде вставить их в эту таблицу, аналогично этому

for(i:lenght(myProductArray)) 
    sqlexecuter.run 
    (" 
     INSERT INTO ORDERED_ENTRIES 
     VALUES("+myProductArray[i]+")" 
    ) 

А затем выбрать, как это

sqlexecuter.select(
" 
SELECT OE.ORDER_ENTRY, PT.PRODUCT_NAME 
FROM PRODUCT_TABLE AS PT, ORDERED_ENTRIES AS OE 
WHERE 
    OE.PRODUCT_NAME = PT.PRODUCT_NAME 
ORDER BY OE.ORDER_ENTRY 
"); 
+0

Спасибо, его работы ........ – Hindu

+0

В качестве дополнительного совета вы должны сделать пакетную вставку, если сможете, вставить все за один раз. Подобно этому: http://stackoverflow.com/questions/10429348/batch-insert-sql-statement – chamakits

+0

спасибо за подсказку, я буду использовать его ... – Hindu

Смежные вопросы