只是想运行一个SQL语句,该语句将一个字母输入到一个文本框中,并返回书籍名称具有相同首字母的结果。例如。如果H进入,那么诸如“快乐的日子”,“天堂”,“希望明天”等书籍将被退回。这是我使用的,但我的DBgrid没有结果。输入字母的文本框是edtBookTitle.text。
qbook.SQL.Text:='SELECT BookID,BookTitle FROM Book WHERE BookTitle LIKE CONCAT(edtBookTitle.text,"%")';
答案 0 :(得分:3)
您的LIKE
不正确。它应该是
SELECT .... WHERE BookTitle LIKE CONCAT(edtBookTitle.text, '%')
你有一个裸%
,它在MySQL中将是算术模运算符,缺少一个操作数。所以你的查询是一个平坦的语法错误。
答案 1 :(得分:0)
SELECT * FROM dbo WHERE someColumn LIKE 'h%';
您可能需要在查询结尾处连接通配符,它应该在引号中。
答案 2 :(得分:-1)
这是修补撇号的问题。
qbook.SQL.Text:='SELECT BookID,BookTitle FROM Book WHERE BookTitle LIKE CONCAT("'+edtBookTitle.text+'%")';
qbook.open;