Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL值相同一次_Mysql - Fatal编程技术网

MySQL值相同一次

MySQL值相同一次,mysql,Mysql,对不起,我会说一点英语 CREATE TABLE `links` ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, category_id INT NOT NULL, -- 1: Facebook, 2: Twitter, ... url VARCHAR(8) NOT NULL, state TINYINT(1) NOT NULL -- boolean ); INSERT INTO `links` ( `id`, `category_id`, `url

对不起,我会说一点英语

CREATE TABLE `links` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
category_id INT NOT NULL, -- 1: Facebook, 2: Twitter, ...
url VARCHAR(8) NOT NULL,
state TINYINT(1) NOT NULL -- boolean
);

INSERT INTO `links` ( `id`, `category_id`, `url`, `state` ) VALUES
( 1, 1, 'cnn', 1 ), -- Facebook
( 2, 2, 'cnn', 1 ), -- Twitter
( 3, 1, 'bbc', 1 ), -- Facebook
( 4, 2, 'bbc', 1 ), -- Twitter
( 5, 1, 'cnn', 1 ), -- It's wrong. This is same as id=1
( 6, 1, 'cnn', 1 ), -- It's wrong. This is same as id=1 (and id=5)
( 7, 1, 'abc', 0 ); -- It's wrong. This is state!=1.
我想在MySQL选择后显示这个

category_id | count
1             2
2             2
这是:

SELECT * FROM `links` ???
谢谢。

试试以下方法:

SELECT category_id, COUNT(DISTINCT url) AS count
FROM links
WHERE state = 1
GROUP BY category_id

您需要将不同的计数和分组方式放在一起

select 
category_id,
count(distinct url) as `count` 
from links where state = 1 group by category_id ;

为避免插入5和6,请将其添加到表中:

UNIQUE(`category_id`, `url`)
如果不希望插入state=0,则不要指定它。将
DEFAULT'1'
添加到
state
的声明中,并从插入中删除该列


因此,您可以从insert中删除
id
和1..7,因为这就是AUTO_INCREMENT的全部内容。

您正在查找sql.Close的GROUP BY子句,但看起来OP希望过滤掉最后一个条目“错误”。不太好。它是5(Facebook)和2(Twitter),而不是2(FB)和2(T)。我现在已经包括了checkin-where子句。