更新第一行mysql php

更新第一行mysql php,php,mysql,sql,Php,Mysql,Sql,我正在尝试更新数据库中的第一行。我使用Limit 1只更新第一行,但什么也没有发生。数据库中肯定有匹配的行,但没有任何更改 代码如下: foreach ($player_fromsite as $match_player_in_game) { //$querytwo = 'INSERT INTO `'.$tablename.'` '.' (`'.$match_player_in_game.'`) '.'VALUES'.'("' . 'yes' . '")'; $querytw

我正在尝试更新数据库中的第一行。我使用
Limit 1
只更新第一行,但什么也没有发生。数据库中肯定有匹配的行,但没有任何更改

代码如下:

foreach ($player_fromsite as $match_player_in_game) {

    //$querytwo = 'INSERT INTO `'.$tablename.'` '.' (`'.$match_player_in_game.'`) '.'VALUES'.'("' . 'yes' . '")';

    $querytwo = 'UPDATE '.$tablename.' SET `'.$match_player_in_game.'` = "'.'yes'.'"   WHERE `'.$match_player_in_game.'` = "'.'NULL'.'" LIMIT 1';

    $querythree = 'UPDATE '.$tablename.' SET `'.$match_player_in_game.'` = "'.'yes'.'" WHERE `'.$match_player_in_game.'` = "'.'NULL'.'" LIMIT 1';

    for($a=0;$a<11;$a++){
        if($match_player_in_game == $home_players[$a]){
            // Insert a row of information into the table "example"
            mysql_query($querytwo) or die(mysql_error());       
       }else{
            mysql_query($querythree) or die(mysql_error());
       }
    }
}
foreach($player\u从站点作为$match\u player\u在游戏中){
//$querytwo='INSERT INTO`.$tablename.''.'.''.$match.'U player.''.'在游戏中''.'值'.''('.'yes'.'');
$querytwo='UPDATE'.$tablename.'SET`.$match\U player\U in\U game.''''''.''''.'yes'.'其中`.$match\U player\U in\U game.''.'NULL'.'LIMIT 1';
$querythree='UPDATE'.$tablename.'SET`.$match\u player\u in\u game.''''''.'''.'yes'.'其中'.'.$match\u player\u in\u game.''''.'NULL'.'LIMIT 1';

对于MySQL中的($a=0;$a),请使用
为NULL
为NULL
进行比较


例如:“
updatetable SET field='yes',其中field为NULL

NULL不是字符串,因此您不应该使用='NULL',除非您实际将其设置为该字符串值。相反,Use为NULL。

您需要定义“第一行”.第一行基于自动递增的id值?第一行基于时间戳日期?您需要指定它,因为MySQL没有“第一行”的概念

例如,如果您在MySQL中执行类似操作:

SELECT * FROM table LIMIT 1
你不能保证每次都能得到相同的记录

很可能您需要在键列上指定一个
ORDER BY
条件,因为没有它,您无法保证
LIMIT 1
将应用于哪一行。我实在想不出在没有
ORDER BY
子句的情况下可以使用
LIMIT
,因为这两个子句实际上是相辅相成的

因此,您的查询应该如下所示:

UPDATE table
SET field = 'yes'
WHERE field IS NULL
ORDER BY some_key_field ASC
LIMIT 1

请注意,即使是此查询也不会每次更新同一行。它将更新指定字段具有空值的第一条记录(由ORDER by指定)。因此,如果您运行此查询10次,它将更改10条不同的记录(假设有那么多具有空值的记录).

你能发布生成的SQL示例,而不是你的PHP代码吗?请不要在新的应用程序中使用
mysql\u query
,它已被弃用,如果像这里一样使用不当会很危险,并且正在从未来的PHP版本中删除。类似的现代替代品。类似的指南将帮助你避免犯类似这样的错误。AlWA我删除了null语句,并给出了相同的结果