在终端中执行MySQL命令时出现错误1054(42S22)

在终端中执行MySQL命令时出现错误1054(42S22),mysql,shell,mysql-error-1054,Mysql,Shell,Mysql Error 1054,我想从status='RECEIVED'所在的crawlstatus表中收集数据,并将该数据存储在一个文件中。 当我试图在终端中执行此操作时,我得到错误1054 42S22 下面是我用来获取数据的命令: sudo sh -c '/usr/local/mysql/bin/mysql -h localhost -P 3306 --user=root --password=XXXXXXXXXX -e "select count(*) from crawlstatus where status='REC

我想从status='RECEIVED'所在的crawlstatus表中收集数据,并将该数据存储在一个文件中。 当我试图在终端中执行此操作时,我得到错误1054 42S22

下面是我用来获取数据的命令:

sudo sh -c '/usr/local/mysql/bin/mysql -h localhost -P 3306 --user=root --password=XXXXXXXXXX -e "select count(*) from crawlstatus where status='RECEIVED';" test_navin > size.log'
我得到以下错误:

ERROR 1054 (42S22) at line 1: Unknown column 'RECEIVED' in 'where clause'

有人能帮我解决这个问题吗?

这里,您是将查询作为参数传递的,所以请使用“”将查询包装起来,但请确保将转义序列添加到使用“”将查询包装起来

您应该使用包装列值

sudo sh -c '/usr/local/mysql/bin/mysql -h localhost -P 3306 --user=root --password=XXXXXXXXXX -e "select count(*) from crawlstatus where status=\"802350570V\";" test_navin > size.log'

在命令中转义“从爬网状态中选择计数*,其中状态=\'RECEIVED\”;测试尺寸。记录Jens说的话。第二个'结束的第一个开始后,就sh-c。转义它会将它隐藏在shell中。@user3391446很高兴帮助您