Raw SQL

๐Ÿ‘จโ€๐Ÿ’ผ Our user search is the last thing that needs to be updated to use SQLite instead of the in-memory database. I've got some requirements in mind for this feature, but for now, we're going to start small with something you could definitely do with regular Prisma queries, and then add onto it for some features you couldn't.
First off, I want you to select user's id, name, and username. I want the searchTerm to match against the username or the name, and I only want the first 50 results.
You're going to need to use LIKE in your WHERE clause and OR as well. Here's an example of what the SQL might look like if we were trying to search for reviews that had the word "great" in them:
SELECT * FROM "Review" WHERE "text" LIKE '%great%';
And here's an example of a query that uses OR:
SELECT * FROM "Review" WHERE "text" LIKE '%great%' OR "text" LIKE '%awesome%';
The % sign is a wildcard that matches any number of characters. So, the first query would match "great", "not great", "great great great", etc. That character needs to be part of what you interpolate into the Prisma raw query, so if you wanted to parameterize that second query it would look like this:
const searchTerm1 = '%great%'
const searchTerm2 = '%awesome%'
await prisma.$queryRaw`
  SELECT * FROM "Review" WHERE "text" LIKE ${searchTerm1} OR "text" LIKE ${searchTerm2};
`
In our case, you'll be getting the search term from the query string and it could be null, so you'll want to fallback to '' if it is. Also, you'll be using the same search term for both the username and name fields.
Login to get access to the exclusive discord channel.
  • ๐Ÿ’พdata
    How often do you need to run a migration?
    Scott ๐ŸŒŒ:
    I just finished the Data Migrations workshop (I come from a No-SQL background). Let's say I add a n...
    • โœ…1
    1 ยท 3 days ago
  • general
    npm install everytime I setup a new playground
    Duki ๐ŸŒŒ:
    Is it normal that I have to run `npm install` in my playground directory, everytime I setup the play...
    • โœ…1
    2 ยท 15 days ago
  • general
    Welcome to EpicWeb.dev! Say Hello ๐Ÿ‘‹
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    This is the first post of many hopefully!
    • 18
    80 ยท 7 days ago
  • ๐Ÿ’พdata
    Code snippets in workshop app
    remich ๐ŸŒŒ:
    What is used to include the code snippets in the workshop app? I'd like to have syntax-highlighted P...
    • โœ…1
    1 ยท a month ago
  • ๐Ÿ’พdata
    a very large insert
    osmancakir ๐Ÿš€ ๐ŸŒŒ:
    hi all, I need to perform seeding to my deployment. I followed the steps in the database documentati...
    • โœ…1
    2 ยท 6 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    Reviewing foundations, Mutations, Actions
    silvanet ๐Ÿš€ ๐ŸŒŒ:
    Forgive me for this. I went over the file size limit. I don't want to sign up for being able to exce...
    • โœ…1
    2 ยท 6 months ago
  • general
    Migration to Vite: Server-only module referenced by client
    Fabian ๐ŸŒŒ:
    Hi, I'm working on migrating to Vite following the remix docs (https://remix.run/docs/en/main/guides...
    • โœ…1
    1 ยท 3 months ago
  • ๐Ÿ’พdata
    Undesired behaviors while running the data-modeling workshop
    juliano.brasil ๐ŸŒŒ:
    After pulling the latest updates I started experiencing 2 undesired behaviors while running the wor...
    • โœ…1
    2 ยท 5 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    Getting a TS error that is not present in the course files
    OtterlyPunk:
    So I'm working in parallel and I'm feeling the problem is I'm using a new version of something in my...
    • โœ…2
    12 ยท 8 months ago
  • general
    Remix Vite Plugin
    Binalfew ๐Ÿš€ ๐ŸŒŒ:
    <@105755735731781632> Now that remix officially supports vite (though not stable) what does it mean...
    • โœ…1
    3 ยท a year ago
  • ๐Ÿ’พdata
    Prisma Typed SQL
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    Hey <@&1123674184959148043> friends, check out the new Typed SQL feature in Prisma! I've added an ex...
    • 2
    • 2
    0 ยท 3 months ago
  • general
    ๐Ÿ”ญfoundations
    Solutions video on localhost:5639 ?
    quang ๐Ÿš€ ๐ŸŒŒ:
    Hi, so I'm having a hard time navigating (hopefully will be better with time) The nav on epicweb.de...
    • โœ…1
    9 ยท a year ago
  • ๐Ÿ’พdata
    Multi-Column Index - How does it eliminate the B-tree?
    Darren ๐Ÿš€ ๐ŸŒŒ:
    So I just finished the Query Optimization - 02 Multi-Column Index lesson and was confused by the fol...
    • โœ…1
    2 ยท 5 months ago
  • general
    Epicshop is now social and mobile friendly!
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    I'm excited to announce that now the Epic Web workshops are mobile friendly! https://foundations.ep...
    • ๐ŸŽ‰2
    0 ยท 5 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    How can I do this?
    silvanet ๐Ÿš€ ๐ŸŒŒ:
    Viewing the Intro (from the Workshop) for Mutations, the course has an embedded video where Kent exp...
    • โœ…1
    3 ยท 6 months ago
  • ๐Ÿ’พdata
    Query optimization for queries generated by prisma
    Allan ๐ŸŒŒ:
    Hi everyone! I finished the data modeling workshop this week and was inspired to do some query optim...
    • โœ…1
    2 ยท 6 months ago
  • ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    double underscore?
    trendaaang ๐ŸŒŒ:
    What with the `__note-editor.tsx`? I don't see that in the Remix docs and I don't remember Kent talk...
    • โœ…1
    2 ยท 6 months ago
  • ๐Ÿ”auth
    ๐Ÿ’พdata
    08. ROLE-BASED ACCESS / 02. ROLES SEED - migration to local vs production
    Fabian ๐ŸŒŒ:
    So I'm in a bit over my head with this one, in particular with how migration works in a local env vs...
    • โœ…1
    1 ยท 6 months ago
  • ๐Ÿ’พdata
    data modeling 06/02 is missing part of the prompt
    Allan ๐ŸŒŒ:
    In Data Modeling 06/02 the files include `server/index.ts` but there are no guiding emojis, no promp...
    • โœ…1
    2 ยท 6 months ago
  • ๐Ÿ’พdata
    Why does TS not like Buffer being used when the return type of the blob appears to be Buffer?
    OtterlyPunk:
    I'm looking at the return types from Prisma and it appears that the `petImage.blob` is a `Buffer` ty...
    • โœ…2
    5 ยท 7 months ago
  • ๐Ÿ’พdata
    ๐Ÿ”auth
    Prisma batching in the Require Authorized (07/03/solution)
    ajara ๐ŸŒŒ ๐Ÿš€:
    When I did the `requireUser` function in `auth.server.ts` I thought about using `requireUserId` func...
    • โœ…1
    4 ยท 7 months ago
  • ๐Ÿ’พdata
    ๐Ÿ”ญfoundations
    Handle Missing Data - Error when i'm using invariantResponse
    Luan.ibarra ๐ŸŒŒ:
    Hello, I'm trying to use the invariantResponse utility from // "#app/utils/misc.ts" to do this in a...
    • โœ…2
    2 ยท 7 months ago
  • ๐Ÿ’พdata
    Data Modeling: a real world scenario
    trendaaang ๐ŸŒŒ:
    Kent, In the data modeling workshop, you mentioned that polymorphism is generally a bad idea in dat...
    • โœ…1
    3 ยท 7 months ago
  • ๐Ÿ”ญfoundations
    ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”auth
    Native Logging
    trendaaang ๐ŸŒŒ:
    I was thinking that it could be useful to log every CRUD operation to help track down errors. Is tha...
    • โœ…1
    6 ยท 7 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    Issues with child routes when loading a modal with actions (server/client)
    OtterlyPunk:
    I've set up a mini-project to go through the first set of videos and I'm having issues with the form...
    • โœ…1
    7 ยท 8 months ago
  • general
    The video play is pretty laggy currently
    QzCurious ๐ŸŒŒ:
    I thought I should tag you for this <@105755735731781632>. Please take a look if something wrong.
    • โœ…2
    9 ยท 8 months ago
  • general
    New Workshop Scheduled
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    Hey Epic Web devs! I wanted to let you know before everyone else on here: https://www.epicweb.dev/ev...
    • 2
    0 ยท 8 months ago