php—从数据库检索字符串匹配的数据并跳过重复值

pxyaymoc  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(273)

我有上百万张照片的大数据库。它包含一个名为“地点”的字段,其中包含db中每张照片的位置信息(即城镇、省、市、国家等),如图所示:

56461972:MetroTuria:POI,20220221:Olivereta:Suburb,776688:Valencia:Town,12602139:Valencia:Province,12578038:Valencia:AutonomousCommunity,20080321:46018:Zip,23424950:**Spain:Country**,56043644:Europe%2FMadrid:Timezone

我有兴趣检索所有的国家名称中找到的,可能会返回到一个不同的表中。跳过国家名称重复的地方。这样我就会对拍照的国家有所了解。因此,类似于找到文本的地方,即“:country”,它检索与之相关联的国家名称,并将其添加到新表中。
这有点难以解释。希望有意义。
提前谢谢。

  • 一些最新回应:
56558566:Duval+Street:Suburb,2432044:Key+West:Town,12587846:Monroe:County,2347568:Florida:State,12772085:33040:Zip,23424977:United+States:Country,56043648:America%2FNew_York:Timezone  
56574535:Columbus+Park:Suburb,2496012:South+Boston:Suburb,2367105:Boston:Town,12588712:Suffolk:County,2347580:Massachusetts:State,12758726:02127:Zip,23424977:United+States:Country,56043648:America%2FNew_York:Timezone    
1984273:Artybash:Town,2120895:GornoAltaysk:Town,12597718:Turochakskiy+Raion:District,20070530:Altai+Republic:Province,24553375:649:Zip,23424936:Russia:Country,56043608:Asia%2FOmsk:Timezone

求你了,我只想把它们找回一次。e、 g.如果“西班牙”与许多图像相关,则应仅考虑一次。我的全部目的只是想看看拍照国家的总数和名称。
请注意,我只是sql的初学者。

7eumitmz

7eumitmz1#

如果您只想提取国家信息,可以使用:

select substring_index(substring_index(place, ':Country', 1), ':', -1)

内在的 substring_index() 提取国家之前的部分。那是一根长长的绳子,末端是 ' . . . Zip,23424950:**Spain' . 外部 substring_index() 在最后一个冒号后取所有内容,冒号是国家的名称。
这是一个测试仪。
编辑:
如果要按国家进行计数,则:

select substring_index(substring_index(place, ':Country', 1), ':', -1) as country,
       count(*)
from t
group by country;
unguejic

unguejic2#

要获得每个国家的计数,可以使用:

SELECT s1.theCountry, count(*) AS theCount
FROM (
  SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(place, ':Country', 1),':',-1) AS theCountry
  FROM photos
) s1
GROUP BY s1.theCountry

相关问题