带有动态表名的Mysql示例

时间:2018-04-19 12:11:22

标签: mysql sql select

请告诉我。必须根据表前缀和从表中提取的数据,在数据库中进行选择,在该数据库中形成表的名称。

表:站点,聊天和Chat_ID(带对应的表)。

我需要从此网站获取网站ID和未读数量。我这样做:

SELECT
  s.id AS id,
 (SELECT
   COUNT(*)
  FROM
    HOW TO ET TABLE NAME? AS ch
  WHERE
    ch.chat_id = c.id AND
    status = 0 AND
    type = 'CLIENT'
  ) AS unread
FROM
  site AS s
  LEFT JOIN chat AS c ON
    c.site_id = s.id AND
    c.operator_id = s.user_id
WHERE
  s.user_id = 1;

表格的名称包含网站的前缀和ID - chat_1。

也许它不对 - 不要扔拖鞋)

1 个答案:

答案 0 :(得分:0)

表的名称在SQL级别不可参数化。只能对文字值进行参数化。

在您的情况下,您需要根据参数值使用不同的表。为此,您需要在编程语言(Java,PHP,Python等)中将SQL构建为字符串,以连接部分以组合表名和查询的其余部分。

你没有其他解决方案。