2012-06-08 2 views
0

У меня есть «большой» стол, как этотMySQL присоединиться извлеченный номер

id user type comment 
    6 1 A id '3' - #8 
    7 1 A id '3' - #9 
    8 3 B  
    9 3 B 

Я хочу, чтобы извлечь номера после хэша и присоединиться к нему с колонкой ид иметь следующее (когда число между единственным цитаты равно пользователю)

id1 id2 user type 
    6 8 3  B 
    7 9 3  B 
+0

любого общего поля? можете ли вы разместить структуру таблицы? – jcho360

+0

id и user (int 11), тип и комментарий (varchar 55) – moeezed

ответ

0

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

mysql> create table bigtable (id int, user_id int, type varchar(10), comment varchar(30)); 
Query OK, 0 rows affected (0.04 sec) 

mysql> insert into bigtable values (6,1, 'A', 'id 3 - #8'),(7,1,'A', 'id 3 - #9'),(8,3, 'B',''),(9,3, 'B',''); 
Query OK, 4 rows affected (0.01 sec) 
Records: 4 Duplicates: 0 Warnings: 0 

mysql> select * from bigtable; 
+------+---------+------+-----------+ 
| id | user_id | type | comment | 
+------+---------+------+-----------+ 
| 6 |  1 | A | id 3 - #8 | 
| 7 |  1 | A | id 3 - #9 | 
| 8 |  3 | B |   | 
| 9 |  3 | B |   | 
+------+---------+------+-----------+ 
4 rows in set (0.00 sec) 

Я самостоятельный присоединиться и использовать функцию substrn_index:

mysql> select b1.id,b2.id,b1.user_id,b1.type 
from bigtable as b1 join bigtable as b2 
on b1.id=SUBSTRING_INDEX(b2.COMMENT,'#',-1); 
+------+------+---------+------+ 
| id | id | user_id | type | 
+------+------+---------+------+ 
| 8 | 6 |  3 | B | 
| 9 | 7 |  3 | B | 
+------+------+---------+------+ 
2 rows in set (0.00 sec) 

Я надеюсь, что это помогло вам

+0

это сработало, спасибо :) – moeezed

+0

haha ​​Я рад за это !, счастливые выходные – jcho360

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