我有2个表呼叫记录和用户,他们的字段在
之下记录字段:
- recordID(key)
- userID(key)
用户字段:
- userID(key)
- 的userName
- userNote
我希望通过recordID了解recordID,userName,userNote group 这是我的sql
select record.recordID, group_concat(user.userName) as USERNAMES , group_concat(user.userNote) as USERNOTES from record
left outer join user on record.userID = user.USERID
group by record.recordID
现在我可以将USERNAMES和USERNOTES与','分开。知道每个用户名及其用户注释
但如果有','在userNote中,它可能会出错
例如,BEN userNote很好,很高,TOM的用户注意很好
sql结果将是
USERNAMES-> BEN,TOM
USERNOTES->好的,妥尔,漂亮的
在这种情况下,USERNOTES将有3个音符,我不能与哪个是TOM' S note
有没有办法避免这种情况?
或者我能做的最好方法是使用难以出现的分隔符,例如'!@#@!'
在我的实际情况中,我有10个与一个键相关的表,所以如果我将所有表保留在外连接,那么它将是大量的重复行,
答案 0 :(得分:2)
一种方法是不同的分隔符:
select r.recordID,
group_concat(u.userName separator ';') as USERNAMES ,
group_concat(u.userNote separator ';') as USERNOTES
from record r left outer join
user u
on r.userID = u.USERID
group by r.recordID ;