扫码关注官方订阅号
如题, 要想书写格式化的sql 必须是多行的。 多行的字符串, 用 nodejs 书写有什么快捷的方式或工具。 一个个+号写过去, 实在太麻烦。
使用的编辑是vim, 有相关的快捷方式推荐更好了
小伙看你根骨奇佳,潜力无限,来学PHP伐。
没什么特别好的方法,一般对于长字符串有两种写法:
第一,用 \ 换行,注意,这样做是不会在字符串中插入 \n,最终结果将是 'Line 1Line 2Line 3'。
\
\n
'Line 1Line 2Line 3'
sql = 'Line 1\ Line 2\ Line 3';
第二,用数组再 join,这样做性能会好一些,但写起来跟 + 一样蛋疼。
+
sql = [ 'Line 1', 'Line 2', 'Line 3' ].join('');
P.S. 如果真的想要写的爽,建议尝试一下 coffeescript 的 string 语法,如果从 python 过来的人应该会很熟悉且很顺手吧。
function a() { /* select * from youtable where 1 <> 0 */ } function getString(f) { return f.toString().replace(/^function[^/*]*?\/\*|\*\/[^*/]*\}$/g, "") } getString(a)
结果(引号仅用于表示起始位置)
" select * from youtable where 1 <> 0 "
把 SQL 语句写在一个外部文件中,然后再读取文件内容。有点类似于在前端渲染结构较复杂的 DOM 元素时,使用模板引擎来取代用 + 号拼接字符串的方式。
sublime Package: JavaScript Multiline
可以参考这个 [ 'select * from', 'table', 'where username =', 'username' ].join(' ')
[ 'select * from', 'table', 'where username =', 'username' ].join(' ')
我也提供下现在采用的方案: 使用一个orm, 这个orm的特点如下: 1. 完全不支持复杂表连接 2. 极高的缓存命中率 说明:大部分应用中使用的sql复杂度不高, 即使个别需要表连接的也完全可以拆分成两条sql。咋看可能增加了代码量,但这样做避免了复杂sql带来的高负载,同时拆分成简单sql能够很好的提升缓存命中率。
sql
可能回答牛头不对马嘴,只是分享这个思路,目前在应用开发中没写过sql,全是通过orm
orm
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
没什么特别好的方法,一般对于长字符串有两种写法:
第一,用
\换行,注意,这样做是不会在字符串中插入\n,最终结果将是'Line 1Line 2Line 3'。第二,用数组再 join,这样做性能会好一些,但写起来跟
+一样蛋疼。P.S. 如果真的想要写的爽,建议尝试一下 coffeescript 的 string 语法,如果从 python 过来的人应该会很熟悉且很顺手吧。
结果(引号仅用于表示起始位置)
把 SQL 语句写在一个外部文件中,然后再读取文件内容。有点类似于在前端渲染结构较复杂的 DOM 元素时,使用模板引擎来取代用 + 号拼接字符串的方式。
sublime Package: JavaScript Multiline
可以参考这个
[
'select * from',
'table',
'where username =',
'username'
].join(' ')
我也提供下现在采用的方案:
使用一个orm, 这个orm的特点如下:
1. 完全不支持复杂表连接
2. 极高的缓存命中率
说明:大部分应用中使用的
sql复杂度不高, 即使个别需要表连接的也完全可以拆分成两条sql。咋看可能增加了代码量,但这样做避免了复杂sql带来的高负载,同时拆分成简单sql能够很好的提升缓存命中率。