我有下表,我想执行以下操作:
计算每个项目在表格中出现的次数
计算DISTINCT物品的数量
按名称对项目进行分组
+-------+---------+
| id | names |
+-------+---------+
| 1 | Apple |
| 2 | Orange |
| 3 | Grape |
| 4 | Apple |
| 5 | Apple |
| 6 | Orange |
| 7 | Apple |
| 8 | Grape |
+-------+---------+
Run Code Online (Sandbox Code Playgroud)
对于 1. 和 3. 点,我有以下查询效果很好:
SELECT * ,
COUNT(names) as count_name,
FROM tbl_products WHERE type = '1'
GROUP BY names
Run Code Online (Sandbox Code Playgroud)
所以我得到:
Apple (4)
Orange (2)
Grape …Run Code Online (Sandbox Code Playgroud)我需要一些MySQL声明的帮助,我无法真正开始工作.
我有这样一张桌子:
+---+-------------------------------+
|id | fruit |
+---+-------------------------------+
| 1 | apple,orange,pear,grape,lemon |
| 2 | pear,melon,apple,kiwi,lemon |
| 3 | orange,kiwi,pear,apple,cherry |
| 4 | grape,lemon,cherry,apple,melon|
+---+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
我需要做的是选择列fruit包含单词的所有行melon.有问题的单词可能位于数组中的任何位置.
我厌倦了下面的查询但由于某种原因我只得到3-4行,绝对不是全部:
$fruit = $_GET['fruit'];
$query1= "SELECT * FROM tbl_fruits WHERE ".$fruit." IN (fruit)";
Run Code Online (Sandbox Code Playgroud)
任何意见将不胜感激.
我有以下功能str_replace:
function url_seo($text)
{
$match = array(']','\\',';',"'",',','.','/','~','`','=');
$replace = array('-','','','','','','','','','');
$text = str_replace($match, $replace, $text);
return $text;
}
Run Code Online (Sandbox Code Playgroud)
我应该\在$match变量中的所有字符之前放置一个如下:
$match = array('\]','\\','\;',"\'",'\,','\.','\/','\~','\`','\=');
Run Code Online (Sandbox Code Playgroud)
还是没有必要?