简体   繁体   English

如何使长的SQL语句在PHP(或其他语言)中看起来很漂亮?

[英]How to make long sql sentence look beautiful in PHP(or other language)?

This is an example; 这是一个例子。 For looking comfortable I fill some tab and line feed in it; 为了看起来舒适,我在其中填充了一些制表符和换行符; I'm looking for some better ways except using '.' 我正在寻找除使用“。”以外的其他更好方法。 to link them. 链接它们。

$str_sql = "SELECT 
          sc.`id` AS 'payment_id',
          sc.`order_id` AS 'order_id',
          od.`partner_id` AS 'partner_id',
          pt.`partner_name` AS 'partner_name',
          od.`term` AS 'order_terms',
          od.`has_pay` AS 'paid_terms',
          sc.`sort_order` AS 'current_term',
          FROM_UNIXTIME(sc.`repayment_time`) AS 'payment_time',
          FROM_UNIXTIME(sc.`receive_time`) AS 'pay_time',
          sc.`order_price` AS 'term_price',
          od.`add_time` AS 'order_time',
          sc.`status` AS 'status',
          od.`order_price` AS 'order_price',
          usr.`user_name` AS 'user_name',
          usr.`id` AS 'user_id',
          usr.`user_cell` AS 'user_cellphone',
          IF(sc.`status` IN (0,3), 1 , 0 ) AS 'overdue',

        FROM 
          mayidev.`lzh_order_payment_schedule` sc 
          JOIN lzh_order od 
            ON sc.`order_id` = od.`id` 
          JOIN lzh_partners pt 
            ON od.`partner_id` = pt.`id` 
          JOIN lzh_order_user usr 
            ON od.id = usr.order_id 
          JOIN lzh_partner_overdue_interest po 
            ON po.`partner_id` = pt.id 
        WHERE sc.`repayment_time` < 1477441800
        AND sc.`receive_time` = 0
          AND sc.`status` != 1
          AND od.`status` = 4 ;";

The best way to make long SQL sentence look beautiful in PHP is to separate SQL code from PHP code. 使长SQL语句在PHP中看起来漂亮的最佳方法是将SQL代码与PHP代码分开。 And the best way to do that is create view s and stored procedure s in SQL to get the data. 最好的方法是在SQL中创建viewstored procedure以获取数据。 You don't really need all this JOIN s logic in PHP. 您实际上并不需要PHP中的所有JOIN逻辑。 It is best stored on the SQL server to keep the code maintainable. 最好将其存储在SQL Server上,以保持代码的可维护性。

And on PHP side you can just SELECT * FROM view or CALL procedure() . 在PHP方面,您只需SELECT * FROM viewCALL procedure()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM