首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一批:"!“如果-否则MYSQL中的运算符

一批:"!“如果-否则MYSQL中的运算符
EN

Stack Overflow用户
提问于 2015-02-13 02:36:28
回答 1查看 109关注 0票数 0

我需要些帮助。如何在查询中定义MySQL!a!?因为我得到了一些错误结果。

代码语言:javascript
运行
复制
  setlocal enableextensions 
  setlocal enableDelayedExpansion

  if !a! EQU !b! (%sql_PATH%\mysql -uroot -e "DROP DATABASE '!a!';")

输出是

错误1064 (42000)在第1行:您在SQL语法中有一个错误:检查与您的MySQL服务器版本相对应的手册,以便在第1行使用接近“sample_1 sample_2”的正确的系统税。

我的完整代码

代码语言:javascript
运行
复制
  @echo off
  setlocal enableextensions 
  setlocal enableDelayedExpansion

  set sql_PATH=C:\wamp\bin\mysql\mysql5.5.24\bin
  set sql_DIR=C:\Users\neca\Desktop\db_test\databases\db_name
  set "dbUser=root"
  set "dbPass="

  set LF=^
  %empty line%
  %empty line%

  cd %sql_DIR%
  FOR /D %%b IN (*) DO %sql_PATH%\mysql -u%dbUser% -e "CREATE DATABASE IF NOT EXISTS %%b;" && set "b=!b!%%b!LF!" 

  echo !b!

  cd %sql_PATH%
  for /f "usebackq delims=" %%a in (`
    %sql_PATH%\mysql -u%dbUser% -e "SHOW DATABASES LIKE '%%sample%%';" 
    ^| findstr /l /v /c:"Database" /c:"information_schema"
`) do (set "a=!a!%%a!LF!")

  echo !a!


  if !a! EQU !b! (%sql_PATH%\mysql -uroot -e "DROP DATABASE !a!;")

  pause
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-13 07:30:36

您的问题不是批处理语法或延迟扩展不起作用。您的问题是,变量的内容是一个以行提要分隔的数据库列表,但是DROP DATABASE命令将只接受一个数据库名。您需要遍历数据库列表以删除每个数据库并发出一个DROP命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28491626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档