mysql - MS SQL存储过程中execute ('select * from tablename')有什么用

标签 mysql sql sql-server stored-procedures

我想弄明白

是什么意思
execute('SELECT customerID [CustomerID],customerCode[Customer Code],
firstName +char(32)+ surname AS [Name],street [Street],phone [Phone],*  
FROM tblCustomers  WHERE customerCode like '''+ @custCode +'%''')

在存储过程中。 我试着用谷歌搜索了很多,但没能找到所以最后我来这里寻求帮助。 因为,我正在将 SP 从 MS SQL 转换为 MySQL,我如何在 MySQL 中转换它? Execute('select * from tablename') 和 'select * from tablename' 有区别吗?

谢谢

最佳答案

SET @sql = CONCAT(' SELECT      *,
                            customerID,
                            customerCode `Customer Code`,
                            CONCAT(firstName, ' ', surname) AS `Name`,
                            street `Street`,
                            phone `Phone` 
                    FROM tblCustomers  
                    WHERE customerCode like ''', @custCode ,'%''');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

或者参数化它,

SET @sql = '    SELECT      *,
                        customerID,
                        customerCode `Customer Code`,
                        CONCAT(firstName, ' ', surname) AS `Name`,
                        street `Street`,
                        phone `Phone` 
                FROM tblCustomers  
                WHERE customerCode LIKE CONCAT(?, ''%'')';

PREPARE stmt FROM @sql;
EXECUTE stmt USING @custCode;
DEALLOCATE PREPARE stmt;

关于mysql - MS SQL存储过程中execute ('select * from tablename')有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764883/

相关文章:

mysql - 在 MySQL 选择查询输出中标记重复项

Mysql 跨 2 列的唯一约束

mysql - 标记值第一次出现在表中的时间

SQL多对多查询问题

java - Hibernate 是否更新未更改的实体?

sql-server - SQL 服务器 : case multiple operations in then part

多行具有相同键值的mysql连接查询

mysql - 使用 SQL INNER JOIN 批量更新字段

sql-server - 提供程序 : Session Provider, 错误:19 - 物理连接不可用 - Azure SQL 数据库

sql-server - 浏览 SQL Server