w3resource

MySQL Full-Text Search with WHERE Filter and Solution


Full-Text Search with a WHERE Clause Filter

Write a MySQL query to search for the term "security" in the "Content" column and filter results by articles published in 2024.

Solution:

-- Search for 'security' and filter results for articles published in 2024.

-- Select all columns from the Articles table where the Content column matches the term 'security'.
SELECT * 
-- Specify the table from which to retrieve the data.
FROM Articles

-- Use the MATCH...AGAINST clause to perform a full-text search for the term 'security'.
WHERE MATCH(Content) AGAINST('security')

-- Add an additional condition to filter results to only include articles published in the year 2024.
-- The YEAR function extracts the year from the PublishDate column.
AND YEAR(PublishDate) = 2024;

Explanation:

  • Purpose of the Query:
    • To locate articles about "security" published in a specific year.
    • Combines full-text search with a date filter.
  • Key Components:
    • MATCH(Content) AGAINST('security') : Full-text search on the Content column.
    • AND YEAR(PublishDate) = 2024 : Filters articles by the publication year.
  • Real-World Application:
    • Ideal for applications needing to narrow down search results based on time periods.

Notes:

  • Ensure that the PublishDate column is correctly formatted.
  • Full-text search is applied first, and then the date filter narrows the results.

For more Practice: Solve these Related Problems:

  • Write a MySQL query to search for "security" in the "Content" column and filter the results to include only articles published in the current month.
  • Write a MySQL query to perform a full-text search for "backup" in the "Content" column while filtering for articles authored by 'admin'.
  • Write a MySQL query to search for "compliance" in the "Content" column and filter results based on a specific category from a joined table.
  • Write a MySQL query to execute a full-text search for "regulation" in the "Content" column and restrict results to those published within the last 7 days.


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous MySQL Exercise: Full-Text Search Using Query Expansion.
Next MySQL Exercise: Full-Text Search Combined with Sorting by Date.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.