【问题标题】:mysql LIKE select only the first letter starts withmysql LIKE 只选择第一个字母开头
【发布时间】:2020-08-15 00:27:55
【问题描述】:

我想选择以单词s 开头的行,但我也得到了其他结果。我在表格中有行red socksblue sweaterskirt....,当我进行如下选择时,我最终得到了上述结果。我猜这是因为红色袜子在第二个单词上包含s,所以我怎么能只选择skirt

 $pr = 's%' 

$stmt = $db->prepare("SELECT * FROM table where product like ?");
$stmt->bind_param('s', $pr);
$stmt->execute(); 

返回的行数

  skirt
  red socks
  blue sweater

我只需要skirt

【问题讨论】:

  • 你能不能执行SELECT * FROM table where product like 's%'MySQL consolePHPMyAdmin并在这里发布结果。
  • @Ravinder 我只在 PHPMyAdmin 上进行查询时得到skirt
  • 您的查询非常清楚,也应该使用mysqliecho $pr绑定前看看是不是'%s%'!!!
  • 试试$stmt->bind_param('ss', $pr);
  • @Rudie 那行不通。引发错误。

标签: php mysql


【解决方案1】:
SELECT * FROM table where product like 's%'

你应该看看这个:

http://www.tutorialspoint.com/mysql/mysql-like-clause.htm

【讨论】:

  • 我正在使用 mysqli 准备好的语句,所以这没有用。
【解决方案2】:

您在$pr = 's' 之后缺少;。 试试:

$pr = 's'; 
$stmt = $db->prepare("SELECT * FROM table where product like CONCAT(?, '%')");
$stmt->bind_param('s', $pr);
$stmt->execute();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多