我的PHP文件中有这个字符串:
$sql = "SELECT p.pac_rut a, ";
$sql .= " p.pac_dig b, ";
$sql .= " p.pac_apepat c, ";
$sql .= " p.pac_apemat d, ";
$sql .= " p.pac_nombre e, ";
$sql .= " to_char(p.pac_fecha_nac,'dd/mm/yyyy') as f, ";
$sql .= " (to_char(sysdate,'yyyy')-to_char(p.pac_fecha_nac,'yyyy')) as g, ";
$sql .= " p.sex_cod h ";
$sql .= "FROM mytable ";
$sql .= "WHERE p.pac_rut=$rut";
sed ':a;N;$!ba;s/\n//g' | sed 's/"; $sql .= "//g' | sed 's/ //g' | sed 's/=\$/=:/g'
给我的结果就像:$sql= "SELECT p.pac_rut a,p.pac_dig b,p.pac_apepat c,p.pac_apemat d,p.pac_nombre e,to_char(p.pac_fecha_nac,'dd/mm/yyyy') as f,(to_char(sysdate,'yyyy')-to_char(p.pac_fecha_nac,'yyyy')) as g,p.sex_cod h FROM salud.pacientes p WHERE p.pac_rut=:rut";
但是如果有2个(或更多)sql查询块,我需要一个可以在2(或更多)行上构建2个(或更多)查询sql的函数。
例如,我有:
$sql = "SELECT p.pac_rut a ";
$sql .= "FROM mytable ";
$sql .= "WHERE p.pac_rut=$rut";
和
$sql2 = "SELECT p.pac_rut a ";
$sql2 .= "FROM mytable ";
$sql2 .= "WHERE p.pac_rut=$rut";
在同一个文件中,我需要这个结果:
$sql = "SELECT p.pac_rut a FROM mytable WHERE p.pac_rut=$rut";
$sql2 = "SELECT p.pac_rut a FROM mytable WHERE p.pac_rut=$rut";
我怎么能用awk或sed或其他linux工具做到这一点?