SQL:检查URL

时间:2017-02-26 11:41:03

标签: mysql sql url select

我的商店里有不同商店的多种产品,想要买一个指定产品。这可以通过url实现,因为每个url都是唯一的!

但是,如果我想通过网址获取值,我会收到错误并显示0个产品,尽管只有一行符合我的查询...

如何解决这个问题并使用网址进行查询? enter image description here

我的查询:

SELECT *
FROM `wp_all_import_xml`
WHERE name = 'Battlefield 4' AND
      price = 7.85 AND
      shop = 7941 AND
      url = "https://www.kinguin.net/category/4498/battlefield-4-eu-origin-cd-key/?nosalesbooster=1&country_store=1&currency=EUR"

问候,谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在没有价格比较的情况下运行此版本:

SELECT *
FROM `wp_all_import_xml`
WHERE name = 'Battlefield 4' AND
      -- price = 7.85 AND
      shop = 7941 AND
      url = 'https://www.kinguin.net/category/4498/battlefield-4-eu-origin-cd-key/?nosalesbooster=1&country_store=1&currency=EUR';

它会返回什么吗?如果是这样,您的问题可能是价格的浮点比较。正确的解决方法是将price的数据类型更改为decimal / numeric。你可以这样做:

SELECT *
FROM `wp_all_import_xml`
WHERE name = 'Battlefield 4' AND
      price >= 7.85 - 0.001 AND price <= 7.85 + 0.001 AND
      shop = 7941 AND
      url = 'https://www.kinguin.net/category/4498/battlefield-4-eu-origin-cd-key/?nosalesbooster=1&country_store=1&currency=EUR';

如果这不起作用,请尝试在网址上使用LIKE

SELECT *
FROM `wp_all_import_xml`
WHERE name = 'Battlefield 4' AND
      -- price = 7.85 AND
      shop = 7941 AND
      url like 'https://www.kinguin.net/category/4498/battlefield-4-eu-origin-cd-key/%;

查看是否会返回任何内容。