![](/img/trans.png)
[英]What is a safe and simple way of escaping table's column names in MySQL?
[英]Simple way to get distinct column names in mysql
以下是我正在mysql中运行的查询,该查询工作正常-
SELECT *
FROM `events` e
LEFT JOIN venues v
ON e.venue_id = v.id
WHERE e.artist_id = 16
在我的事件和艺术家表中,我具有一些常见的命名属性,例如id
, lat
, long
等
因此,在从查询中获取结果输出时,我需要执行以下操作以使id,lat,长距离区分是针对其表指定所有列名称-
SELECT e.id as e_id, v.id as v_id .........AND LOT MORE
FROM `events` e
LEFT JOIN venues v
ON e.venue_id = v.id
WHERE e.artist_id = 16
所以您只看到3-4件事,我需要写很多东西而不是简单的*
...因此,从开发人员的懒惰中,我正在寻找某种方式来缩短它,而不是在SELECT ......
中编写和指定所有内容SELECT ......
请让我知道是否有一种方法可以使它简短。
您可以采用类似以下方式自动枚举列:
$cols = [];
$stmt = $db->exec("SHOW COLUMNS FROM events");
foreach($stmt as $r)
$cols []= "e.{r['Field']} as e_{r['Field']}";
// the same for the second table, then
$cols = implode(',', $cols);
"SELECT $cols FROM ..."
如果您要执行许多这样的查询,则可以将生成的列列表缓存在某处,以避免过多的“ SHOW COLUMNS”查询(尽管这些查询非常快)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.