Mysql如何改变变量

标签 mysql

我的问题是这样的:

$channeldb = mysql_query("SELECT * FROM channels AS ch
            LEFT JOIN groups AS gr 
            ON gr.code = ch.code
            ". $searchdb ." LIMIT 100");
while($channel = mysql_fetch_assoc($channeldb))
...

变量 $cannel[id] 来自表格组,但我需要来自 channel

像这样:

$ch-id = ch.id;

但如何:)

感谢您的帮助

最佳答案

明确选择所需的列。例如:

SELECT ch.id
FROM channels ch LEFT JOIN
     groups gr 
     ON gr.code = ch.code;

对于应用程序代码,您不应使用 SELECT *(至少)有四个原因:

  • 如果基础表发生更改,可能会影响您的代码(并且很难调试)。
  • 如果表具有相同的列,您会感到困惑。
  • 带回额外的、未使用的列只是浪费带宽(以及时间)。
  • 您的代码应该非常清楚它所使用的数据。

如果您需要两个 ID,则为它们添加别名:

SELECT ch.id as channel_id, gr.id s group_id
FROM channels ch LEFT JOIN
     groups gr 
     ON gr.code = ch.code;

此外,如果每个表中有一个唯一的 ID,它可能应该用于 JOIN,而不是 code

关于Mysql如何改变变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719494/

相关文章:

php - 使用 PHP 和 MySQL 从数组插入多个值并将它们与单个值关联

php - multi_query() 有错误

mysql - sql多重连接和计数

MySQL 查询 - 条件(比较字符串)不起作用

mysql - 在 bash 脚本中存储 MySQL 密码

PHP MySQL在唯一索引上创建重复记录奇怪失败

php - 我应该如何存储音乐文件?

php - 选择带有数组的 MySQL 条目

mysql - 查找尚未接受的 5 个最旧(最早)的请求

mysql - 如何修复 "Found option without preceding group in config file my.ini at line: 1"