[英]php search a mysql string results
大家只是一個簡單的問題。 我在mysql行中有一個類似於此的字符串
'google.co.nz, stackoverflow.com, facebook.com, grubber.co.nz'
依此類推...我想搜索表格中的所有行,並檢查“ facebook.com”在所有與上述行相同的行中出現了多少次,以便澄清
我的行看起來像這樣
-- id -- user -- likes
1 bob facebook.com, google.co.nz, grubber.co.nz, stackoverflow.com
我想檢查在整個表格中(每行)facebook.com出現了多少次
假設每個用戶只能一次瀏覽同一頁面,則該方法應該起作用:
SELECT COUNT(*)
FROM table
WHERE likes REGEXP '[[:<:]]facebook.com[[:>:]]'
PS:標准化您的桌子,在不久的將來您會遇到這樣的布局帶來嚴重麻煩!
您可以通過發送LIKE SQL查詢以一種懶惰的方式進行操作:
SELECT count(*) FROM my_table
WHERE my_table.likes LIKE '%facebook.com%'
這真的(真的)對cpu不友好。 特別是大桌子
否則,您可以使用MySQL全文索引功能。
您可以在本文中找到更多詳細信息
您可以使用like
運算符來匹配模式:
SELECT COUNT(id) AS occurences WHERE likes LIKE "%facebook.com%"
您可以使用“ LIKE”語句。 就像這樣(如果您想知道哪個用戶喜歡facebook.com)
SELECT * FROM yourtable
WHERE likes LIKE '%facebook.com%'
無論如何,請考慮將點贊存儲在1:n表結構中,而不是存儲為字符串
這樣,您將擁有一個表,用於存儲所有可能的站點,一個用戶表和一個用於存儲分配的用戶表。
嘗試這個
select count(likes) from yourTable where likes like '%facebook.com%'
其他選擇。 獲取變量中的行數據,然后使用函數preg_match_all( http://www.php.net/manual/es/function.preg-match-all.php )。
此函數返回在第一個參數中傳遞的正則表達式的出現次數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.