【问题标题】:How do I create a mysql LIKE variable? [closed]如何创建 mysql LIKE 变量? [关闭]
【发布时间】:2012-09-25 14:11:13
【问题描述】:

是否可以在 MySql 中为 LIKE 表达式创建一个变量?

例如

SET @test = '%my text to look for%';
SELECT * FROM MYTABLE WHERE MYCOLUMN LIKE @test;

当然我试过这种方法,但没有奏效。

很抱歉选择了 mysql-connect 标签,实在想不出别的了。

编辑 1

“没有工作”意味着我没有得到变量的结果。

【问题讨论】:

  • 定义“无效”。您是否收到错误(在这种情况下,我们需要知道它是什么),或者只是没有结果(在这种情况下,您应该检查是否确实有符合您的搜索条件的行)。
  • “没有工作”意味着没有工作 - @meanbunny 我想你可能有理解问题。什么的。
  • 我不知道这是英文101?我认为这是一个寻求编程问题帮助的地方。我已经清楚地列出了回答这个问题需要知道的信息。
  • 你试过用'@test'代替@test吗?
  • @meanbunny:当你寻求免费帮助时,这是关于表现出一些基本的努力。 “没用”并没有告诉我们做了什么研究来找出确实发生了什么以及你的测试结果中还有什么线索。这通常也是(尽管不是你的情况)信息悖论的原因,你试图解释你的程序打算做什么,仅仅通过提供根据定义不执行该功能的代码,只留下“它行不通”这句话作为线索,我们将通过心灵感应神奇地唤起你的意图,并在可能的情况下,通过专家的直觉。哇!

标签: mysql mysql-connect sql-like


【解决方案1】:

是的,您的示例应该可以正常工作。请参阅下面的测试用例:

SQL Fiddle Example

【讨论】:

  • 这可能会通过 sql 语法,但这并不意味着查询对数据有效。如果我输入我正在寻找的确切文本来代替我的变量,它可以正常工作。将它放在变量中会使它失败。
  • 请提供SQL Fiddle的问题示例。
  • @meanbunny - 我在我的 MySQL 实例上测试了这个例子,它工作正常。 RedFilter 写的是真的,它是有效的语法并且确实有效。
  • 您是在 MySQL 提示符或 GUI 中执行此查询,还是通过 php 或其他脚本语言执行此查询?另外,你的 MySQL 版本是多少?
  • 如果您在工作台中使用以下内容会发生什么:SET @test = "'%text to look for%'"; SET @st = "SELECT * FROM your_table WHERE column LIKE "; SET @stmt = CONCAT(@st, @test); PREPARE stmt FROM @stmt; EXECUTE stmt ;
猜你喜欢
  • 1970-01-01
  • 2016-04-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多