更新第一行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语句,并给出了相同的结果