【问题标题】:How to create database view with cutom LIKE parameter?如何使用自定义 LIKE 参数创建数据库视图?
【发布时间】:2020-01-09 15:19:49
【问题描述】:

我有到我的云 MySQL 数据库的 JDBC 连接。 利用 View 获取时间的优势,我决定为用户查询的搜索结果创建视图,以将其添加到我的 JavaFX UI TableView 中。

我有以下 SQL 视图从 UI 中的方法运行。

    CREATE VIEW `SEARCHED_QUERY_VIEW` AS
    SELECT PRODUCTS.id, 
    PRODUCTS.name AS 'Product name',
    MANUFACTURER.name AS 'Manufacturer name',
    PACKAGE.name AS 'Package type',
    SUB_PACKAGE.name AS 'Sub Package type' 
    FROM LOGISTICS.PRODUCTS
    JOIN MANUFACTURER ON PRODUCTS.manid = MANUFACTURER.id 
    JOIN PACKAGE ON PRODUCTS.packageid = PACKAGE.id
    JOIN SUB_PACKAGE ON PRODUCTS.subpackageid = SUB_PACKAGE.id
    WHERE MANUFACTURER.name LIKE '%VIT%' OR PRODUCTS.name LIKE '%VIT%';

现在问题在于LIKE。 我希望LIKE 获得一个参数,该参数将从 JavaFX 中的参数化方法传递。 任何人都可以就如何修改视图以从 Java 方法接收自定义 LIKE 参数提出解决方案吗?

【问题讨论】:

    标签: java mysql database sql-view


    【解决方案1】:

    您应该移动 like 参数以从视图中进行选择。 所以创建没有类似条件的视图,但在查询中使用 LIKE:

    SELECT * FROM SEARCHED_QUERY_VIEW WHERE `Manufacturer name` LIKE '%VIT%' OR `Product name` LIKE '%VIT%';
    

    【讨论】:

    • 稍后查询 LIKE 会节省我的抓取时间吗?
    • View 为您提供了选择数据的便捷方式,它使您无需修改​​ java 代码即可更改表和视图(在某些情况下)。不幸的是,获取时间可能与使用连接的简单查询相同。
    • "获取时间可能与使用连接的简单查询相同" - 在最好的情况下!
    • 另外:您不能使用 MANUFACTURER.namePRODUCTS.name - 这些表在该上下文中是未知的。
    • @i.bondarenko 是的,这行得通。谢谢大家。感谢您的努力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2021-06-11
    相关资源
    最近更新 更多