存盤程序如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `cxgx`(P1 VARCHAR(255),P2 VARCHAR(255),P3 VARCHAR(255))
NO SQL
BEGIN
SET @table_name=P1;#表名
SET @position_index=P2;#查詢第幾列
SET @limit_num=P3-1;#取第幾條資料
SET @col_name = (SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE table_name = @table_name
AND ordinal_position=@position_index
);# 獲取列名
SET @exe_sql=CONCAT("SELECT ",@col_name ," FROM ",@table_name," LIMIT ",@limit_num," ,1 ");#獲取執行sql陳述句
PREPARE stmt3 FROM @exe_sql;
EXECUTE stmt3 ;#查詢結果
END
這個CXGX存盤程序的作用是獲取某個表中某個單元格的值。
例如運行CALL cxgx("agx002",3,1),得到位于agx002表第三列第一行坐標數值。
問題:能否使用MySQL陳述句,將CALL()函式結果再次運算,達到比如如下效果:CALL cxgx("agx002",3,1)+CALL cxgx("agx002",4,1)-CALL cxgx("agx001",5,1)。實際運行會提示錯誤。1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+cxgx("agx002",4,1)' at line 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267616.html
標籤:疑難問題
上一篇:請大佬教我一下
下一篇:求助,這個SQL陳述句哪里出錯了。on student.s_id=score.s_id這句前面可以執行,加上它就執行失敗。
