首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有语句的Laravel查询

有语句的Laravel查询
EN

Stack Overflow用户
提问于 2017-09-19 09:49:10
回答 1查看 68关注 0票数 0

这是一个查询,通过声明变量,然后准备语句并执行查询,将数据按行转换为列中的数据。

现在我的问题是如何将这个查询转换成laravel格式,请帮助我.

SET @sql = NULL, @sql1 = NULL, @sql2 = NULL;

代码语言:javascript
复制
SELECT GROUP_CONCAT(
           CONCAT('WHEN ''',  column_name, ''' THEN `', column_name, '`')
       SEPARATOR ' ')
  INTO @sql1
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_schema = SCHEMA()
   AND table_name = '7'
   AND column_name LIKE '7%'
 GROUP BY table_name;

SELECT GROUP_CONCAT(
           CONCAT('SELECT ''',  column_name, ''' objectid' )
       SEPARATOR ' UNION ALL ')
  INTO @sql2
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_schema = SCHEMA()
   AND table_name = '7'
   AND column_name LIKE '7%'
 GROUP BY table_name;

SET @sql = CONCAT(
'SELECT m.ObjectID, m.ObjectLabel, q.Value
  FROM modules_forms_objects m LEFT JOIN
(
  SELECT objectid,
         CASE objectid ', @sql1, ' END value 
    FROM `7` t CROSS JOIN
  (', @sql2, '
  ) c
) q`enter code here`
    ON m.objectid = q.objectid');

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

回答 1

Stack Overflow用户

发布于 2017-09-19 09:53:49

为什么不能使用原始查询?

DB::select(' { Your Code Here} ');

DB::raw(' {Your Code Here} ');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46297218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档