Mainataining Column Order in Recordset - نوشته شده در (1000 Views)
Support Moderator
Shaggy
مطلب: 6780
6780
OK, bare with me here, my brain's a bit mushy at the moment!
Say, for example, I have a table (ONE) with 5 records in it, each with a unique ID. In another table (TWO) I have some records, each with 5 columns. Using those 5 columns in TWO, I want to select the information from ONE ordering it by the order of the columns in TWO.
So my tables would be:
Code:
ONE
---
ID FIELD
1 abc
2 def
3 ghi
4 jkl
5 mno

TWO
---
ID COL1 COL2 COL3 COL4 COL5
1 3 1 2 5 4
And my query would be:
Code:
SELECT O.FIELD FROM ONE O,TWO T WHERE O.ID IN (T.COL1,T.COL2,T.COL3,T.COL4,T.COL5) AND T.ID=1
And I want the returned recordset to be in the order:
  • ghi
  • abc
  • def
  • mno
  • jkl
Any suggestions on how I'd achieve that without using any more tables or columns?
<edit>Figured it out - forgot I'd managed to achieve this before using MySQL's "FIELD" function. So now my query looks like this:
Code:
SELECT O.FIELD FROM ONE O,TWO T WHERE O.ID IN (T.COL1,T.COL2,T.COL3,T.COL4,T.COL5) AND T.ID=1 ORDER BY FIELD(O.ID,T.COL1,T.COL2,T.COL3,T.COL4,T.COL5)
And returns the recordset in the desired order. Huzzah! smile</edit>
Search is your friend “I was having a mildly paranoid day, mostly due to the
fact that the mad priest lady from over the river had
taken to nailing weasels to my front door again.”
 پیش‌فرض مرتب‌سازی برای تاریخ DESC به معنی جدیدترین است  
 تعداد در صفحه 
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
LOL Shaggy, maybe your brain was a bit mushy. You meant "bear with me" vs "bare with me" (which means to denude or to strip). I don't think anyone taking their clothing off would have helped think through the process.
نوشته شده در
Support Moderator
Shaggy
مطلب: 6780
6780
I say what I mean and I mean what I say! tongue
Search is your friend “I was having a mildly paranoid day, mostly due to the
fact that the mad priest lady from over the river had
taken to nailing weasels to my front door again.”
 
شما باید یک متن وارد کنید