簡體   English   中英

PHP搜索MySQL字符串結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM