mysql- GROUP CONCAT错误

时间:2015-12-15 09:45:52

标签: mysql sql encryption

我在GROUP_CONCAT(DISTINCT CONCAT('MAX(IF标记中获取加密值时遇到错误,实际上我试图获取具有不同prim键的表字段的透视值,我有两个表作为 -

individual_data

-----------------------------------
|prim_key  |fieldname  |answertext|
-----------------------------------
|30101     |state      |0         |
|30101     |Number     |4         |
|30101     |Name       |Rajbanshi |
|30101     |Main       |RAJBANSHI |
|30101     |Surname    |RAJBANSHI |
|30201     |state      |0         |
|30201     |Number     |4         |
|30201     |Name       |Pawar     |
|30201     |Main       |Ramesh    |
|30201     |Surname    |Pawar     |
-----------------------------------

*注意 - 这里aswertext字段是加密的,为了清楚起见,我给出了实际值......

sms_household

--------------------------
|hhid  |sampletype  |urid|
--------------------------
|30100 |3           |3008|
|30200 |4           |3005|
--------------------------

并希望得到所需的结果

-----------------------------------------------------------------------------------
|prim_key |state | number | name      | main      | surname   | sampletype | urid |
-----------------------------------------------------------------------------------
|   30101 |    0 |      4 | Rajbanshi | RAJBANSHI | RAJBANSHI |          3 | 3008 |
|   30201 |    0 |      4 | Pawar     | Ramesh    | Pawar     |          4 | 3008 |
-----------------------------------------------------------------------------------

同样我把查询写成

SET @@group_concat_max_len = 300000;
SET @sql = NULL;
SELECT 
GROUP CONCAT (DISTINCT 
CONCAT(
'MAX(IF(I.fieldname = ''',
fieldname, 
''', convert(aes_decrypt(answertext,'xyz')USING utf8), NULL)) AS ',
fieldname
)
) INTO @sql
FROM individual_data;

SET @sql = CONCAT('SELECT I.prim_key "prim_key" H.sampletype "sampletype", H.urid "urid"', @sql,
'FROM individual_data I inner join sms_household H on H.hhid = concat'(left(I.prim_key,4),'0')' and H.hhid like '30%' and H.urid like '30%' GROUP BY I.prim_key');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;`

但我在`convert(aes_decrypt(answertext,'basbas')USING utf8)中得到了语法错误信息,ms))AS'..... 我没有弄错.. !!

0 个答案:

没有答案