2
指导如果解决方案可行。MySql表按分割字符串的值排序
我需要表如下结果
RAJ1 RAJ2 ARUN MUTHU
-----------------------
86 74 45 null
74 86 45 null
null 74 45 86
我不知道从哪里开始通过对程序或通过正常的查询来实现这一点。
指导如果解决方案可行。MySql表按分割字符串的值排序
我需要表如下结果
RAJ1 RAJ2 ARUN MUTHU
-----------------------
86 74 45 null
74 86 45 null
null 74 45 86
我不知道从哪里开始通过对程序或通过正常的查询来实现这一点。
SELECT
COALESCE(
IF(LEFT(subj1,4)='RAJ1', SUBSTRING(subj1,6), NULL),
IF(LEFT(subj2,4)='RAJ1', SUBSTRING(subj2,6), NULL),
IF(LEFT(subj3,4)='RAJ1', SUBSTRING(subj3,6), NULL)) as RAJ1,
COALESCE(
IF(LEFT(subj1,4)='RAJ2', SUBSTRING(subj1,6), NULL),
IF(LEFT(subj2,4)='RAJ2', SUBSTRING(subj2,6), NULL),
IF(LEFT(subj3,4)='RAJ2', SUBSTRING(subj3,6), NULL)) as RAJ2,
COALESCE(
IF(LEFT(subj1,4)='ARUN', SUBSTRING(subj1,6), NULL),
IF(LEFT(subj2,4)='ARUN', SUBSTRING(subj2,6), NULL),
IF(LEFT(subj3,4)='ARUN', SUBSTRING(subj3,6), NULL)) as ARUN,
COALESCE(
IF(LEFT(subj1,5)='MUTHU', SUBSTRING(subj1,7), NULL),
IF(LEFT(subj2,5)='MUTHU', SUBSTRING(subj2,7), NULL),
IF(LEFT(subj3,5)='MUTHU', SUBSTRING(subj3,7), NULL)) as MUTHU
FROM thetable;
将每个列联合成一个长列表,将名称,值拆分为2列,然后在名称上进行转义。由于字符串操作,性能会很慢,但是当我们有非规格化数据时会发生这种情况。 – xQbert 2011-12-24 12:42:24