【问题标题】:Differences case sensitivity in SELECT COLUMN and COUNT, mysql?SELECT COLUMN 和 COUNT,mysql 中区分大小写的区别?
【发布时间】:2009-12-02 03:43:09
【问题描述】:

好的,我在这里有点困惑。在我的数据库中,我有 5 行这些数据 =>“string@domail.com”(全部小写),这是我的代码,查询 1(我正在使用 php 和 mysql):

$str = 'STRING@DOMAIN.COM';

$sel = mysql_query("SELECT COUNT(*) 
                    FROM table 
                    WHERE `column` = '{$str}'");
$num = mysql_num_rows($sel);

echo $num;

结果是1。但是如果我改成Query2

SELECT column 
FROM table 
WHERE `column` = '{$str}'"

它返回 5。

另一个问题是,如果我想找出数据库中存在的行数,查询 1 或 2,就查询速度而言,我应该使用哪个查询?

【问题讨论】:

    标签: mysql select count case-sensitive


    【解决方案1】:
    $num = mysql_num_rows($sel);
    

    这将返回从您的查询中选择的行数。对于查询一,由于您从表中选择 COUNT(*),因此它返回一行,其中包含一个单元格:此单元格的值为 5。第二个查询选择具有来自 $str 的值的所有条目,因此 @987654325 @ 确实会返回 5。

    至于另一个问题,先查询是否效率更高,但是如果您要查找值为$str的行数,则不要使用mysql_num_rows(),而是使用mysql_fetch_row()

    【讨论】:

    • 谢谢。但是 num_rows 和 fetch_row 有什么不同呢? fetch_row 更好吗?为什么??
    • 他们的任务不同。当您执行 SELECT 查询时,它会返回一个结果。该结果可能包含您选择的数据行。 mysql_fetch_row() 返回结果集中可用的下一行,而 mysql_num_rows() 返回结果集中可用的行数。
    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多