我可以在MYSQL中选择一列而不是全部,以使其更快吗?

eri*_*c01 10 php mysql

我想做这样的事情:

$query=mysql_query("SELECT userid FROM users WHERE username='$username'");
$the_user_id= .....
Run Code Online (Sandbox Code Playgroud)

因为我想要的只是与用户名对应的用户ID.

通常的方式是:

$query=mysql_query("SELECT * FROM users WHERE username='$username'");
while ($row = mysql_fetch_assoc($query))
    $the_user_id= $row['userid'];
Run Code Online (Sandbox Code Playgroud)

但这有什么更有效的吗?非常感谢,问候

Daa*_*aan 13

你的头上钉了一针:你想做的是SELECT userid FROM users WHERE username='$username'.试试吧 - 它会起作用:)

SELECT *几乎总是一个坏主意; 最好指定希望MySQL返回的列的名称.当然,您仍然需要使用mysql_fetch_assoc或类似的东西来实际将数据转换为PHP变量,但至少这可以节省MySQL发送所有这些列的开销,无论如何都不会使用.

另外,您可能希望使用较新的mysqli库或PDO.这些也比旧的mysql库更有效,旧的mysql库已被弃用.