所以我一直试图解决这个问题一段时间但是无法弄清楚我是否必须通过SQL端或PHP端来做这个。
我的代码到目前为止:
#first apply original solution
df1 = df.apply(lambda x: pd.to_numeric(x.astype(str).str.replace(',',''), errors='coerce'))
print (df1)
A B C D E F
0 NaN 4.0 7.0 1000 5 NaN
1 NaN 5.0 8.0 3 3 NaN
2 NaN NaN 9.0 50000 6 NaN
#mask where all columns are NaN - string columns
mask = df1.isnull().all()
print (mask)
A True
B False
C False
D False
E False
F True
dtype: bool
#replace NaN to string columns
df1.loc[:, mask] = df1.loc[:, mask].combine_first(df)
print (df1)
A B C D E F
0 q 4.0 7.0 1000 5 w
1 e 5.0 8.0 3 3 e
2 r NaN 9.0 50000 6 r
>
所以这个商店" UUID"和playername成一个单独的表。但我想在添加新UUID之前检查UUID是否已经存在。基本更新它。 这是因为玩家名称可以改变。而且我不想要多行相同的数据。 但那仅仅是因为它的存在。
背景资料: 我通过Mojangs API从用户那里获取用户名,它只允许每分钟单个查找一次UUID。所以我希望每隔5分钟左右使用运行此脚本的计划任务获取数据,并将其存储在表格中。
答案 0 :(得分:1)
您可以使用选择
轻松查看$sql = "SELECT * FROM `bm_player_bans` ORDER BY id";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
$playerId = bin2hex($row['player_id']);
$storedname= getPlayerName($playerId);
$sql = "SELECT * FROM `bm_onlinedata` where uuid = '" . $playerId ."';";
$result = mysqli_query($link, $sql);
$num_rows = mysqli_num_rows($result);
if ($num_rows> 0) {
$sql = "UPDATE bm_onlinedata
set playername = '". $storedname."'
where uuid = '" .$playerId ."';"; )";
} else {
$sql = "INSERT INTO bm_onlinedata (uuid, playername) VALUES ('".$playerId."', '".$storedname."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}
}else{
echo "0 results";
}