2011-05-20 42 views
0

我有MySQL查詢:如何正確地在mysql中查詢mysql?

SET @row = 0; 

SELECT @row := @row + 1 AS Row, col1 
    FROM table1; 

但如何正確地把裏面$sql=",,,,,,";

我TRID:

SET @row = 0; 
$sql = "SELECT @row := @row + 1 AS Row, col1 
      FROM table1"; 

但我認爲它不工作,那麼嘗試:

$sql = "SELECT @row := @row + 1 AS Row, col1 
      FROM table1, 
       (SELECT @rownum = 0)"; 

沒有錯誤,但我得到結果的行空 這真正的查詢:

SELECT @rownum:[email protected]+1 AS No, B.Serial_number,A.Symptom 
     FROM oqc_defect A 
     JOIN (SELECT @rownum := 0) r 
     LEFT JOIN inspection_report B 
     ON A.Model = B.Model 
     WHERE Appearance = 'NG' OR Packing = 'NG' OR Accesories = 'NG' OR Tuner = 'NG' OR General_operation = 'NG' 
     GROUP BY A.Model 

我得到的結果一樣:

No Serial_number Symptom 
1 106X0336 Remocon Wrong Part Number 
6 106X0528 Trimplate have scratch 
7 106V8024 IC breaket not lock to top chassis 
8 106X5890 IC breaket not lock to top chassis 
9 106X5866  IC breaket not lock to top chassis 
10 106X0781 Finder crack at bottom side 
+0

不要在DB中計算rownum!這是應用程序的工作。 – binaryLV 2011-05-20 07:22:23

回答

1

用途:

$sql = "SELECT @rownum := @rownum + 1 AS Row, 
       t.col1 
      FROM table1 t 
      JOIN (SELECT @rownum := 0) r "; 

我糾正:

  • 您需要:=設置一個變量
  • 你聲明的變量是@rownum,不@row你用來添加自己

PHP的mysql_query不支持多個查詢,因此使用SET的版本不會像您發佈的那樣工作。我提供的解決方案不需要SET語句,因此它可以在mysql_query中運行...

+0

@OMG:它顯示不順序,但是..我會發布。 – nunu 2011-05-20 07:04:58

+0

@nunu:表是MyISAM嗎?我遇到了針對MyISAM表的這個查詢的問題。 – 2011-05-20 07:06:00

+0

@OMG:是的,當然。你有沒有看到我更新的問題? – nunu 2011-05-20 07:09:35