Получить координаты (строка, столбец) таблицы в запросе MySQL - PullRequest
0 голосов
/ 14 июля 2011

Есть ли способ получить (строка, столбец) координаты таблицы?

Пример:

tbl1:                              tbl2:
+--------+--------+--------+       +------+-----------+---------+
| Name   |   ROW  |   COL  |       |  ROW |  COL_0    |  COL_1  |
+--------+--------+--------+       +------+-----------+---------+
| VALUE1 |     0  |     0  |       |    0 |  OPEN     |  CLOSE  |
| VALUE2 |     2  |     1  |       |    1 |  RIGHT    |  LEFT   |
| VALUE3 |     1  |     0  |       |    2 |  OFFLINE  |  ONLINE |
+--------+--------+--------+       +------+-----------+---------+

Результат должен выглядеть следующим образом:

+--------+----------+     
| Name   |   ROWCOL | 
+--------+----------+ 
| VALUE1 |   OPEN   | 
| VALUE2 |   ONLINE | 
| VALUE3 |   RIGHT  | 
+--------+----------+ 

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

Это странное требование, но я считаю, что это сработает:

SELECT name, 
CASE COL
  WHEN 0 THEN COL_0
  WHEN 1 THEN Col_1
END as rowcol
FROM tbl1 as t1
INNER JOIN tbl2 as t2
ON t1.ROW = t2.ROW
0 голосов
/ 14 июля 2011

Я думаю, что полагаться на неявные данные, такие как округлые числа или около того, не очень хорошая идея.

Я предлагаю реорганизовать tbl2 примерно так:

create table tbl2 (
   rowid integer,
   colid integer,
   textvalue varchar(32)
);

Данные будут выглядеть как

0 0 OPEN
0 1 CLOSE
1 0 RIGHT
1 1 LEFT
...

, который позволяет получить ваш результат с

select tbl1.name as Name, tbl2.textvaluevalue as ROWCOL
from tbl1, tbl2
where tbl1.ROW = tbl2.rowid and tbl1.COL = tbl2.colid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...