1
+------------+---------------+
| BR_NAME    | FACILITIES    |
+------------+---------------+
| headoffice | fixeddeposit  |
| headoffice | locker        |
| headoffice | mobilebanking |
| headoffice | netbanking    |
| zone1      | fixeddeposit  |
| zone1      | mobilebanking |
| zone1      | netbanking    |
| zone2      | fixeddeposit  |
| zone2      | netbanking    |
| zone3      | fixeddeposit  |
| zone3      | locker        |
| zone3      | netbanking    |
| zone4      | netbanking    |
| zone5      | locker        |
| zone6      | fixeddeposit  |
| zone6      | locker        |
| zone7      | locker        |
| zone7      | mobilebanking |
| zone8      | locker        |
| zone8      | mobilebanking |
| zone9      | locker        |
+------------+---------------+

これは私のデータベースです。同じ複数値の属性を持つ br_name を見つけたいです。例: zone7、zone8 mysql を使用してクエリを実行する方法

4

2 に答える 2

2

を使用してこのようなことを行うことができますgroup_concatfiddle も参照してください)

CREATE TEMPORARY TABLE tt (BR_NAME VARCHAR(50),ALLFACILITIES VARCHAR(50));

INSERT INTO tt
(SELECT
    BR_NAME,
    GROUP_CONCAT(FACILITIES)
FROM
    (SELECT * FROM t ORDER BY FACILITIES) as t1
GROUP BY
    BR_NAME);

SELECT
  GROUP_CONCAT(BR_NAME) AS BR_NAMES,
  ALLFACILITIES
FROM
  tt
GROUP BY
  ALLFACILITIES
HAVING
  COUNT(*) > 1

結果:

BR_NAMES        ALLFACILITIES

zone9,zone5     locker
zone7,zone8     mobilebanking,locker

COUNT(*) > 1すべての BR_NAME の機能を削除および取得できることに注意してください。

于 2013-04-26T05:51:00.370 に答える
0

group by と having を使用してそれを行うことができます。

SELECT * FROM TableName group by BR_NAME having count(*) >= 2

また

SELECT *, COUNT(*) c FROM TableName GROUP BY BR_NAME HAVING c > 1;
于 2013-04-26T04:28:07.880 に答える