0
我正在使用Mysql,而且我堅持我希望的是一個簡單的問題。 如果一個條件爲真或另一個條件爲真,我需要從表中選擇數據。使用表達式從mysql表中選擇
我試過的一個選擇會返回數據,但數據比它應該多得多。事實上,該表只包含66條記錄,但是我的查詢返回了177條記錄。我誤解了一些東西。
,我需要選擇數據,如果[「城市」等於值和「類型」是金]或「類型」是一個名爲類別中的「魅力」
我已經試過此查詢
SELECT b.*
FROM bubbles b, bubble_types bt
WHERE
b.city = 10
AND b.type = 'golden'
OR bt.category = 'charm'
AND bt.type = b.type;
而這一次(這根本不能工作,但可能是接近馬克?)
SELECT b.*
IF(b.city = 10, b.type = 'golden'),
IF(bt.category = 'charm', bt.type = b.type)
FROM bubbles b, bubble_types bt;
希望我想情理之中的事情?
我應該從城市10中那些「金色」的氣泡中的66個或其類型字段將它們放入類別'魅力'中的氣泡中獲得約10行。
謝謝;對於bubble_types
編輯樣表數據:
+----+----------+------------+
| id | category | type |
+----+----------+------------+
| 1 | bubble | golden |
| 2 | charm | teleport |
| 3 | charm | blow |
| 4 | badge | reuser |
| 5 | badge | winner |
| 6 | badge | loothunter |
| 7 | charm | freeze |
| 8 | badge | reuser |
| 9 | badge | winner |
| 10 | badge | loothunter |
+----+----------+------------+
mysql> describe bubbles;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| city | bigint(20) | YES | | NULL | |
| type | varchar(32) | YES | | NULL | |
| taken_by | bigint(20) | YES | | NULL | |
| taken_time | bigint(20) | YES | | NULL | |
| label | varchar(256) | YES | | NULL | |
| description | varchar(16384) | YES | | NULL | |
| created | datetime | YES | | NULL | |
+-------------+---------------------+------+-----+---------+----------------+
也返回了66行中的177行。 也許有一些更基本的東西我錯過了。 bubble_types包含; + ---- + ---------- + ------------ + | id |類別|鍵入| + ---- + ---------- + ------------ + | 1 |泡泡|黃金| | 2 |魅力|瞬移| | 3 |魅力|打擊| | 4 |徽章| reuser | | 5 |徽章|贏家| | 6 |徽章| loothunter | | 7 |魅力|凍結| | 8 |徽章| reuser | | 9 |徽章|贏家| | 10 |徽章| loothunter | + ---- + ---------- + ------------ + – mark 2012-08-05 20:28:07
嗯,不出來太好.... – mark 2012-08-05 20:28:36
我現在懷疑它是加入...你可以用表格定義來編輯你的問題嗎? – 2012-08-05 20:31:07