我正在尝试创建一个过程,该过程只在特定布尔值标记为true时返回一个表。
这是我的table:
CREATE TABLE company (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
is_grocery_store BIT(1) NOT NULL DEFAULT b'0',
is_restaurant BIT(1) NOT NULL DEFAULT b'0',
is_entertainment BIT(1) NOT NULL DEFAULT b'0',
is_retail_store BIT(1) NOT NULL DEFAULT b'0',
is_financial_institution BIT(1) NOT NULL DEFAULT b'0',
is_mortgage_company BIT(1) NOT NULL DEFAULT b'0',
is_medical_establishment BIT(1) NOT NULL DEFAULT b'0',
is_insurance_agency BIT(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (id)
)
程序如下:
CREATE PROCEDURE get_company (IN CORPORATION ENUM(
'grocery_store',
'restaurant',
'entertainment',
'retail_store',
'financial_institution',
'mortgage_company',
'medical_establishment',
'insurance_agency'
))
SET @sql = "SELECT * FROM company WHERE is_? = b'1'");
PREPARE stmt FROM @sql;
EXECUTE stmt USING FAMILY_ID, CORPORATION;
DEALLOCATE PREPARE stmt;
我插入了一堆行,下面是我调用过程的地方:
CALL get_company('financial_institution');
当我尝试运行它时,出现以下错误:
# 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NULL' at line 1
请注意,我使用phpmyadmin上的sql选项卡来运行此代码,而他们不使用 delimiter //
或者 BEGIN
以及 END
. 这不是问题所在。
暂无答案!
目前还没有任何答案,快来回答吧!