我有一个地点表,其中包含不同国家/地区。 我想计算每个国家/地区的发生情况,并将其插入名为“地点”的新表中。
ID | Location | Count|
1 | United Kingdom | 5 |
2 | United States | 2 |
3 | Country Unavailable | 3 |
以下代码会将所有不可用的国家/地区插入数据库。
计算未知字符串出现次数的最佳逻辑是什么?
<?
$country = mysqli_query($dbc, "SELECT Location, COUNT(location)
FROM TWEETS WHERE location LIKE 'country unavailable'");
while ($row=mysqli_fetch_array($country))
{
$country_count=$row[0];
mysqli_query($dbc, "INSERT INTO Location(location, count) VALUES
('country unavailable', '$country_count')");
}
?>
对不起,上述声明对我有用,我没有说清楚。 因此,这将计算国家/地区不可用并将其插入数据库。 我的问题是我想插入一个有价值的位置,但我不知道该位置是什么,所以我不能使用&#39;喜欢&#39;。
有什么工作?这就是我想要的工作:
<?
$country = mysqli_query($dbc, "SELECT Location, COUNT(location) FROM TWEETS
WHERE location LIKE '?????????????'");
while ($row=mysqli_fetch_array($country))
{
$country_string=$row[0];
$country_count=$row[0];
mysqli_query($dbc, "INSERT INTO Location(location, count) VALUES
('$country_string', '$country_count')");
}
&GT?;
因此,如果我的数据库返回10个位置,其中一个可能只是澳大利亚。它必须能够接收该字符串并计数。
答案 0 :(得分:0)
您可以只在一个查询中执行此操作,例如:
$query = "INSERT INTO Location (location, count)
SELECT Location, COUNT(location) FROM TWEETS WHERE location LIKE 'Country Unavailable'";
mysqli_query($dbc, $query);
答案 1 :(得分:0)
如果你想使用计数...你必须按
分组$query = "INSERT INTO Location (location, count)
SELECT Location, COUNT(location)
FROM TWEETS
WHERE location LIKE 'Country Unavailable'
GROUP BY Location";
- &GT;插入新的数据行&#39;国家/地区不可用&#39;,2(计数)
你真的想插入一个新的数据流吗?或者更新?
$query = "UPDATE Location
SET count = (
SELECT COUNT(location)
FROM TWEETS
WHERE location LIKE 'Country Unavailable'
GROUP BY Location)
WHERE Location = 'Country Unavailable'";
编辑:
我不确定我的问题是否正确,但不应该做以下工作?
$query = "INSERT INTO Location (location, count)
SELECT t.Location, Count(*) FROM TWEETS t
LEFT JOIN Location l
ON t.location = l.Location
WHERE l.Location is null
GROUP BY t.Location"