フィールドに重複しないSQL文を問い合わせるにはどうすればいいですか?
1769 ワード
テーブル作成文は次のとおりです.
テーブルを作成すると、usersテーブルのnameカラム値が重複していることがわかります.では、nameカラムが重複していないレコードはどう書けばいいと思いますか.考えてみれば、groupby関数を使用してnameをグループ化し、name列をいくつかのグループに分割し、これらのグループを処理し、処理するときにhavingとcount関数を使用してnameをフィルタリングし、統計することができます.SQLは以下のようになります.
/*
Navicat MySQL Data Transfer
Source Host : localhost:3306
Source Database : test
Target Host : localhost:3306
Target Database : test
Date: 2013-08-19 21:51:49
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('1', 'huanhuan', '20');
INSERT INTO `users` VALUES ('2', 'xiaoxiao', '20');
INSERT INTO `users` VALUES ('3', 'dada', '20');
INSERT INTO `users` VALUES ('4', 'xiaoxiao', '20');
INSERT INTO `users` VALUES ('5', 'jiaojiao', '20');
INSERT INTO `users` VALUES ('6', 'dada', '20');
INSERT INTO `users` VALUES ('7', 'wenwen', '20');
INSERT INTO `users` VALUES ('8', 'wenwen', '20');
テーブルを作成すると、usersテーブルのnameカラム値が重複していることがわかります.では、nameカラムが重複していないレコードはどう書けばいいと思いますか.考えてみれば、groupby関数を使用してnameをグループ化し、name列をいくつかのグループに分割し、これらのグループを処理し、処理するときにhavingとcount関数を使用してnameをフィルタリングし、統計することができます.SQLは以下のようになります.
select name,age from users group by name having count(*) = 1;