我有一个大的SQL语句,是否有任何“更聪明”的方式来格式化这些东西?
$serverFields = 'SERVER_ID, SERVERNAME, SERVERLOCATION_ID, SERVERLOCATIONDETAIL_ID,
SERVEROS_ID, SERVEROSVERSION_ID, IP_BACKEND, IP_FRONTEND, IP_BACKUP,
SERVERREMOTETOOL_IDS, LOGIN, DESCRIPTION, TIME_INSERT, TIME_UPDATE,
CHANGE_USER, MANDATOR_ID, TIVOLI_UPDATABLE, TIVOLI_LAST_SCAN,
TIVOLI_LAST_UPDATE, WINDOMAIN_ID, PROCESSORCOUNT, OS_ID, PHYSICAL_MEMORY_KB';
$osFields = 'OSLANG_ID, OSARCH_ID, OSSUBVERSION_ID, OSMINORVERSION_ID, OSMAJORVERSION_ID, OSTYPE_ID';
$processorFields = 'PROCESSORMODEL_ID, PROCESSORMANUFACTURER_ID';
$sql = sprintf(
"SELECT %s , %s , %s FROM %s s
LEFT OUTER JOIN (
(OS JOIN
OSSUBVERSION USING (OSSUBVERSION_ID)) JOIN
OSMINORVERSION USING (OSMINORVERSION_ID) JOIN
OSMAJORVERSION USING (OSMAJORVERSION_ID)
)USING (OS_ID) LEFT OUTER JOIN (
PROCESSORMODEL JOIN PROCESSORMANUFACTURER USING(PROCESSORMANUFACTURER_ID)
)USING (PROCESSORMODEL_ID) WHERE
%s = :id AND MANDATOR_ID = :mandatorId",
$serverFields, $osFields, $processorFields, $this->_tableName, $this->_identifier);
答案 0 :(得分:4)
我有时使用SQLInform来格式化大型SQL脚本,但这可能不是你想要的。
答案 1 :(得分:3)
好吧,我的写作和缩进都有些不同,但它是否“更聪明”取决于你:
$sql = sprintf("
SELECT %s, %s, %s
FROM %s
LEFT OUTER JOIN OS USING (OS_ID)
JOIN OSSUBVERSION USING (OSSUBVERSION_ID)
JOIN OSMINORVERSION USING (OSMINORVERSION_ID)
JOIN OSMAJORVERSION USING (OSMAJORVERSION_ID)
LEFT OUTER JOIN PROCESSORMODEL USING (PROCESSORMODEL_ID)
JOIN PROCESSORMANUFACTURER USING (PROCESSORMANUFACTURER_ID)
WHERE %s = :id
AND MANDATOR_ID = :mandatorId
", $serverFields, $osFields, $processorFields, $this->_tableName, $this->_identifier);
答案 2 :(得分:0)
可能是您想要的:http://www.orczhou.com/sqlparser/ PHP SQL格式
相同的问题答案 3 :(得分:0)
我找到了这个用于格式化SQL的免费在线工具: