npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@heliont/n8n-nodes-mysql

v2.0.0

Published

Custom MySQL node for n8n that merges query results into input data.

Readme

Heliont MySQL — n8n Custom Node

A smart wrapper around the native n8n MySQL node for structured SELECT-based query processing and context merging.

n8n mysql License


✨ Overview

Heliont MySQL extends the base n8n MySQL node with additional functionality designed for flow-based merging of query results into existing input data structures.

Key features:

  • Dual output routing: separates flows with and without results
  • Smart dot-notation merge of SQL results into input JSON
  • Optional debug output with full query and result metadata
  • Fully compatible with existing MySQL credentials and configuration

🔌 Node Behavior

This node:

  1. Executes the provided SQL query using standard n8n MySQL node infrastructure
  2. Routes results to:
    • Results: if at least one row was returned
    • No Result: if the query was a SELECT and no rows were returned
  3. For single-row SELECT queries, attempts to merge result columns directly into the input JSON via dot notation (e.g., user.name)
  4. For multiple-row results or unmatched columns, attaches them to a result key

📤 Outputs

| Output Port | Description | |------------------|--------------------------------------------------------------| | No Result | Used when a SELECT query returns 0 rows | | Results | Used when a result exists or non-SELECT query was executed |

Each item passed through includes:

{
  "fieldA": "valueA",
  "nested": { "fieldB": "valueB" },
  "result": {
    "numberOfRows": 2,
    "results": [ ... ]
  },
  "debug": {
    "query": "SELECT * FROM users",
    "queryType": "SELECT",
    "numberOfRows": 2,
    "rawResult": [ ... ]
  }
}

🔍 debug info is only present when the Detailed Output option is enabled.


🧠 Merge Logic

  • If the query returns exactly one row, and all its keys match existing dot notation paths in the input, the values are merged directly.
  • If any key does not match an existing dot path in the input, the full result is attached under result.

Example:

SELECT user.name, user.age FROM users WHERE id = 1;

Will inject user.name and user.age directly into:

{
  "user": {
    "name": "Alice",
    "age": 30
  }
}

🛠️ Usage Tips

  • Ideal for context-aware query augmentation (e.g., enrich a contract or session with user profile info)
  • Works seamlessly with workflows expecting conditional logic based on SQL results
  • Combine with the Heliont contract pattern for advanced flow merging

🧪 Development

This node wraps the internal mysqlVersionDescription and uses the internal router and shared methods (listSearch, loadOptions, etc.).

Output structure is built by extractDataRows() and dot-merging via dotNotationMerge().


📄 License

MIT License — see LICENSE


💡 Author

Made with 💚 by Heliont