这里有一个SQL查询,返回

因为我使用的是SELECT DISTINCT,所以无法查询其他列

同时,当我使用SELECT*时,没有错误,但会显示重复记录..

下面是我的sql查询

function setvip_sportsbook_model(){
 //connect to the server
$conn= mysqli_connect("localhost","root","","people");
//check the connection
if(mysqli_connect_errno($conn)){
echo "Error";
}
else{
//echo "connect Ok";    
}


 //prepare the sql

$sql= "SELECT DISTINCT merchant_name FROM merchants2";
//execute query
$result= mysqli_query($conn,$sql);
//process result
if($myrow = mysqli_fetch_array($result)){
    $record = array();
do{
    
    $info['merchant_name']=$myrow['merchant_name'];
    $info['sbvip']=$myrow['sbvip'];

    
    $record[] = $info;
    
}while($myrow = mysqli_fetch_array($result));
 }  
   return $record;
 }

我需要为sbvip做什么查询?非常感谢你

推荐答案

将sql更改为

$sql= "SELECT DISTINCT merchant_name, sbvip FROM merchants2";

这将仅 Select 具有不同merchant_名称和sbvip值的记录.

然而,听起来令人担忧的是,数据库中存在重复记录.如果一个更新了,但另一个没有更新呢?然后,同一数据库中同一记录的旧版本和新版本会产生不一致的结果.

另一个技巧是,您的记录检索循环可以重写为:

$record = array();
while($myrow = mysqli_fetch_array($result)) {
    
    $info['merchant_name']=$myrow['merchant_name'];
    $info['sbvip']=$myrow['sbvip'];

    
    $record[] = $info;
    
}

您可以删除前if($myrow = mysqli_fetch_array($result)){个.这也有助于在没有找到记录的情况下,防止返回值为null.

Mysql相关问答推荐

SQL中的搜索模式

使用由其中一个表的列规定的条件连接两个表

根据计数按月和年对数据进行分组()

MySQL:一个查询中的SELECT语句,用于从一个表中检索所有数据,并仅从另一个表中检索一个数据

SQL:CAST与窗口函数组合导致语法错误

外部磁盘上的MySQL表空间和数据文件

Mysql 查询返回未定义的 node.js

替代对多个表执行 FULL OUTER JOIN?

基于多个 where 子句在规范化表中查找公共 ID(值)

如何在 WampServer 上重新初始化 MySQL 以允许 lower_case_table_names = 2

使用索引进行查询优化

拆分列值并适当地返回拆分值

如何在更新语句中使用多个子字符串函数?

多个驱动器上的 MYSQL 数据

无法在两个 mysql 表上执行内部联接

mysql从另一个表中 Select 不相等的值

最好的 MySQL 性能调优工具?

MySQL:按字段排序,将空单元格放在末尾

基于字符串动态创建 PHP 对象

MySQL where NOT IN 名称数组?