对不起,如果问题措辞严厉,基本上我正在尝试做这样的事情
mysql --user user --p password database -e " SELECT * FROM
`wp_postmeta` WHERE `meta_key` LIKE '_sku' AND `meta_value` = '';" | awk ' { print $2 } ' > post_id_data.txt
然而,当我运行这种代码风格时,我得到错误,我不知道为什么,因为mysql语句直接来自phpmyadmin,并且当我连接到mariadb数据库时工作。我试图删除一些后面的刻度,以便它们更像是''而不是显示什么但仍然没有运气反而我得到这个错误
第1行的错误1064(42000):SQL语法中有错误;检查与您的MariaDB服务器版本对应的手册,以便在''wp_postmeta'附近使用正确的语法。在第1行'meta_key'ELKE'_sku'和'meta_value'='''
我尝试过的另一个代码示例如下所示。
#!/bin/bash
MYSQLUSER="user"
MYSQLPASS="password"
database="wordpress"
#mysql options to be parsed
MYSQLOPTS="--user=${MYSQLUSER} --password=${MYSQLPASS} ${database}"
mysql ${MYSQLOPTS} << EOFMYSQL
SELECT * FROM `wp_postmeta` WHERE `meta_key` LIKE '_sku' AND `meta_value` = '';
EOFMYSQL
我也试过了
root@3e0a62b6b42c:/# mysql --user=user--password=passowrd wordpress -e
"SELECT * FROM 'wp_postmeta' WHERE 'meta_key' LIKE '_sku' AND
'meta_value' = '';"
第1行的错误1064(42000):SQL语法中有错误;检查与您的MariaDB服务器版本对应的手册,以便在''wp_postmeta'附近使用正确的语法。在第1行'meta_key'ELKE'_sku'和'meta_value'='''
请注意,我是Mysql的新手,所以任何对我可以做的事情的好学习材料的参考都非常感谢
删除分号和列/表名称周围的引号。
当您使用分号终止查询时,mysql
工具会爆炸。
如果需要,可以使用反引号来引用实体名称,而不是引号。
试试这个:
"SELECT * FROM wp_postmeta WHERE meta_key LIKE '_sku' AND meta_value = ''"